Control of autonomous mobile robots

By defining and prioritizing behavioral control zones using user input and sensor data, autonomous cleaning robots can efficiently clean high-debris areas first, optimizing energy use and enhancing user interaction.

JP7739311B2Active Publication Date: 2025-09-16IROBOT CORP
View PDF 10 Cites 0 Cited by

Patent Information

Application Number
JP2022550013
Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
Priority Date
2020-06-08
Filing Date
2021-02-09
Publication Date
2025-09-16
Estimated Expiration
2041-02-09

AI Technical Summary

Technical Problem

Existing autonomous cleaning robots lack efficient methods to prioritize and optimize cleaning missions based on behavioral control zones, leading to suboptimal cleaning efficiency, especially in time-constrained situations or with limited energy reserves.

Method used

The implementation of behavioral control zones, which are defined and prioritized based on user input and sensor data, allowing the robot to focus cleaning efforts on areas that need it most, such as those with higher debris accumulation, and adjusting cleaning actions like vacuum power and speed accordingly.

Benefits of technology

Enhances cleaning efficiency by prioritizing dirty areas first, optimizing energy use, and enabling coordinated control of multiple robots, improving user interaction and system-level interactions.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 0007739311000001
    Figure 0007739311000001
  • Figure 0007739311000002
    Figure 0007739311000002
  • Figure 0007739311000003
    Figure 0007739311000003
Patent Text Reader

Abstract

The method includes receiving mapping data collected by the autonomous cleaning robot as it moves about an environment, a portion of the mapping data indicating a location of an object in the environment, and defining a clean zone at the location of the object, wherein the autonomous cleaning robot is configured to initiate a clean behavior constrained to the clean zone in response to encountering the clean zone in the environment.
Need to check novelty before this filing date? Find Prior Art

Description

[Technical Field]

[0001] CROSS-REFERENCE TO RELATED APPLICATIONS This application is an international application which claims priority to U.S. patent application Ser. No. 16 / 895,848, filed June 8, 2020, which claims the benefit of priority under 35 U.S.C. §119(e) to U.S. application Ser. No. 62 / 988,468, filed March 12, 2020, the entire contents of which are incorporated herein by reference.

[0002] This specification relates to the control of an autonomous mobile robot. [Background technology]

[0003] Autonomous mobile robots include autonomous cleaning robots, which autonomously perform cleaning tasks in an environment (e.g., in a home). Many types of cleaning robots are autonomous to some degree and in different ways. A cleaning robot can include a controller configured to autonomously navigate the robot in an environment such that the robot can pick up debris as it moves. [Prior art documents] [Patent documents]

[0004] [Patent Document 1] U.S. Patent Application No. 16 / 588,295 Summary of the Invention [Means for solving the problem]

[0005] The autonomous mobile robot can clean a house during a cleaning mission, for example, by vacuuming, mopping, or performing some other cleaning action within the home. A user can operate a user computing device (e.g., a smartphone, etc.) to establish behavioral control zones, which trigger the robot to perform specific actions in response to encountering the behavioral control zone. The behavioral control zones can be prioritized, for example, through selection by a user, a computer, etc., such that the robot prioritizes moving into the behavioral control zone and initiating actions associated with the behavioral control zone during a cleaning mission. A behavioral control zone can be, for example, a focused clean zone, and the robot can prioritize cleaning the area encompassed by the behavioral control zone at the beginning of a cleaning mission.

[0006] Advantages of the implementations described in this disclosure may include, but are not limited to, those described below and elsewhere in this disclosure.

[0007] Cleaning missions performed by a robot can be optimized to enable the robot to efficiently clean an area. For example, in implementations where the behavioral control zone is a clean zone, the robot can prioritize areas covered by the clean zone, allowing the robot to increase the amount of debris the robot picks up during a cleaning mission. Particularly when a cleaning mission is time-constrained, priorities for behavioral control zones can indicate to the robot which areas of the environment to prioritize during a cleaning mission. Behavior control zones can correspond to areas that tend to get dirty faster, and thus, priorities can enable the robot to clean dirtier areas first in time-constrained cleaning missions. In some implementations, cleaning missions can be time-constrained due to the robot's energy level. For example, the robot may not be fully charged and, due to this insufficient energy level, may have insufficient energy levels to be able to cover the entire floor surface of the environment. The robot can prioritize behavioral control zones, allowing the robot to clean dirtier areas of the environment first. Thus, through the methods, systems, etc. described in this disclosure, the robot is able to clean the environment in a manner that prioritizes cleaning the dirtier areas.

[0008] In implementations in which multiple behavioral control zones are defined, the methods and systems described in this disclosure can provide a way for a user to manage and prioritize the cleaning of these multiple behavioral control zones, thus improving the efficiency with which a robot can clean an environment. For example, a user can prioritize one behavioral control zone over another, thus allowing the user to precisely define which zone a robot should attend to first and which zone the robot should attend to next when starting a cleaning mission. Also, each behavioral control zone can be associated with multiple priorities, each priority corresponding to a different autonomous mobile robot operating in the environment. In this manner, behavioral control zones can have different priorities depending on the autonomous mobile robot.

[0009] Prioritization of behavioral control zones can be based on data collected by an autonomous mobile robot operating in an environment, allowing computer-selected and user-selected behavioral control zones to be based on accurate real-world observations of conditions in the environment. For example, the robot can have a debris sensor that can collect data indicating the amount of debris collected in different parts of the environment. These data can be used by the computer system to recommend behavioral control zones or to present information to a user about the amount of debris collected in different parts of the environment, allowing the user to make an informed selection of behavioral control zones. Other sensors on the robot can also be used for a data-driven approach to selecting behavioral control zones. For example, the robot can have an image capture device that collects data indicating objects in the environment. The objects can be objects associated with debris (e.g., kitchen counters, entryways, dining room tables, or other objects that tend to drop debris onto floor surfaces). The locations of these objects can be used to recommend or select behavioral control zones.

[0010] The systems and methods described in this disclosure can improve system-level interactions between an autonomous mobile robot, a user, and a remote computing system, if present. Among other things, the systems and methods can enable data and input from the autonomous mobile robot, the user, and the remote computing system to be used together to control the behavior of one or more of the autonomous mobile robots. Behavior control zones can be generated based on a combination of both sensor data produced by the autonomous mobile robot and user input provided by the user. Additionally, in implementations where multiple autonomous mobile robots are present, sensor data from each of the autonomous mobile robots can be used to generate behavior control zones. The remote computing system can collect sensor data from one or more autonomous mobile robots operating in an environment and can also collect user input from one or more users. The generated behavior control zones can be used to control the behavior of multiple autonomous mobile robots operating in an environment. Moreover, the behavior control zones can enable coordinated control of the autonomous mobile robots. For example, a first one of the autonomous mobile robots may be controlled to perform a first behavior when the first autonomous mobile robot encounters a behavior control zone, while a second one of the autonomous mobile robots may be controlled to perform a second behavior when the second autonomous mobile robot encounters a behavior control zone.

[0011] The systems and methods described in this disclosure can improve user interaction with an autonomous mobile robot operating in an environment. The user interface can serve as a medium for the user to receive visual information about the location-based control of the autonomous mobile robot. The user interface of the user computing device can present an intuitive map of the environment that shows how the autonomous robot may behave when operating in the environment. Thus, the user can view the map presented on the user interface and get a sense of the different behavioral control zones that control the behavior of the autonomous mobile robot. Moreover, the user can easily use the user interface to modify or create behavioral control zones in the environment.

[0012] In one aspect, a method includes receiving mapping data collected by an autonomous cleaning robot as the autonomous cleaning robot moves about an environment, a portion of the mapping data indicating a location of an object in the environment, and defining a clean zone at the location of the object, wherein the autonomous cleaning robot is configured to initiate a clean behavior constrained to the clean zone in response to encountering the clean zone in the environment.

[0013] In another aspect, a method includes receiving mapping data collected by the autonomous cleaning robot as it moves about an environment; defining a behavioral control zone corresponding to a portion of the mapping data, wherein the autonomous cleaning robot is configured to initiate a behavior in response to encountering the behavioral control zone in the environment; and associating a priority with the behavioral control zone, wherein the autonomous cleaning robot is configured to initiate movement into the behavioral control zone based on the priority associated with the behavioral control zone.

[0014] In another aspect, a method performed by an autonomous cleaning robot includes transmitting mapping data collected by the autonomous cleaning robot as the autonomous cleaning robot moves about an environment to a remote computing system; receiving data indicative of a behavioral control zone associated with a portion of the mapping data and data indicative of a priority associated with the behavioral control zone; initiating movement to the behavioral control zone based on the priority; and initiating a behavior in the behavioral control zone in response to encountering the behavioral control zone in the environment.

[0015] In another aspect, an autonomous cleaning robot includes a drive system configured to move the autonomous cleaning robot through an environment as the autonomous cleaning robot cleans floor surfaces in the environment, a sensor that generates mapping data as the autonomous cleaning robot moves about the environment, and a controller configured to execute instructions to perform operations, the operations including transmitting mapping data collected by the autonomous cleaning robot as it moves about the environment to a remote computing system, receiving data indicative of a behavioral control zone associated with a portion of the mapping data and data indicative of a priority associated with the behavioral control zone, initiating movement to the behavioral control zone based on the priority, and initiating an action in the behavioral control zone in response to encountering the behavioral control zone in the environment.

[0016] In some implementations, defining the clean zone can include defining the clean zone based on a type of object. In some implementations, the method can further include determining a type of object based on one or more contextual features in the environment proximate the object in the environment. Defining the clean zone can include defining the clean zone based on the determined type of object.

[0017] In some implementations, after performing a clean action within a clean zone, the autonomous cleaning robot can initiate movement to another clean zone associated with another object in the environment, and then initiate a clean action in response to encountering the other clean zone.

[0018] In some implementations, the method may further include associating a priority with the clean zone, wherein the autonomous cleaning robot is adapted to initiate movement to the clean zone based on the priority associated with the clean zone. In some implementations, the autonomous cleaning robot may initiate movement to the clean zone in response to a mission having a planned duration less than a threshold duration. In some implementations, the autonomous cleaning robot may initiate movement to the clean zone in response to a low battery status of the autonomous cleaning robot. In some implementations, the method may further include causing the autonomous cleaning robot to initiate movement from the docking station to the clean zone in response to the initiation of a mission in the environment.

[0019] In some implementations, the clean action can correspond to an intensive clean action, which can cause the autonomous cleaning robot to cover the clean zone more than once, increase the vacuum power of the autonomous cleaning robot, or decrease the movement speed of the autonomous cleaning robot.

[0020] In some implementations, associating a priority with the behavioral control zone may cause the autonomous cleaning robot to initiate movement to the behavioral control zone at the start of a mission and then initiate an action in response to encountering the behavioral control zone, the action corresponding to an intensive clean action performed in the behavioral control zone. In some implementations, after performing the intensive clean action in the behavioral control zone, the autonomous cleaning robot may initiate movement to another behavioral control zone associated with a different priority lower than the priority associated with the behavioral control zone and then initiate an intensive clean action in response to encountering the other behavioral control zone.

[0021] In some implementations, associating a priority with the behavioral control zone may include associating a priority with the behavioral control zone based on a user selection of an environmental feature to associate with the behavioral control zone.

[0022] In some implementations, the method may further include defining a plurality of behavioral control zones. Defining the plurality of behavioral control zones may include defining the behavioral control zones. The method may further include associating a plurality of priorities with the plurality of behavioral control zones, respectively. Associating a plurality of priorities with the plurality of behavioral control zones may include associating the priorities with the behavioral control zones. In some implementations, the method may further include providing a schedule to the autonomous cleaning robot to cause the autonomous cleaning robot to prioritize cleaning a first subset of the plurality of behavioral control zones during a first time period and to cause the autonomous cleaning robot to prioritize cleaning a second subset of the plurality of behavioral control zones during a second time period. In some implementations, the first time period may be during a first cleaning mission, and the second time period may be during a second cleaning mission. In some implementations, the first time period and the second time period may be during a cleaning mission.

[0023] In some implementations, the autonomous cleaning robot may initiate movement into a behavioral control zone in response to a mission having a scheduled duration less than a threshold duration.

[0024] In some implementations, the autonomous cleaning robot initiates movement to a behavioral control zone in response to a low battery status of the autonomous cleaning robot.

[0025] In some implementations, the autonomous cleaning robot begins movement into a behavioral control zone before beginning movement into an area in the environment associated with a lower priority than the priority associated with the behavioral control zone.

[0026] In some implementations, the method may further include causing the autonomous cleaning robot to begin moving from the docking station to the behavioral control zone in response to the initiation of a mission in the environment.

[0027] In some implementations, the behavioral control zone may be a first behavioral control zone, the priority may be a first priority, and the behavior may be a first behavior. The method may further include defining a second behavioral control zone, wherein the autonomous cleaning robot is configured to initiate the second behavior in response to encountering the second behavioral control zone in the environment, and associating the second behavioral control zone with a second priority, wherein the autonomous cleaning robot is configured to initiate movement into the second behavioral control zone based on the second priority associated with the second behavioral control zone. In some implementations, the first priority of the first behavioral control zone may be higher than the second priority of the second behavioral control zone, wherein the autonomous cleaning robot is configured to initiate movement into the first behavioral control zone before initiating movement into the second behavioral control zone.

[0028] In some implementations, associating a priority with the behavioral control zone can include associating a priority with the behavioral control zone based on a user selection of the priority.

[0029] In some implementations, the method may further include receiving sensor data collected by the autonomous cleaning robot as it moves about the environment. Associating priorities with the behavioral control zones may include associating priorities with the behavioral control zones based on the sensor data. In some implementations, the sensor data may indicate an amount of debris detected in an area covered by the behavioral control zone during a mission of the autonomous cleaning robot, and associating priorities with the behavioral control zones based on the sensor data may include associating priorities with the behavioral control zones based on the amount of debris detected in the area covered by the behavioral control zone. In some implementations, the sensor data may indicate a type of debris detected in an area covered by the behavioral control zone during a mission of the autonomous cleaning robot, and associating priorities with the behavioral control zones based on the sensor data may include associating priorities with the behavioral control zones based on the type of debris. In some implementations, the sensor data may indicate objects proximate to or within the behavioral control zone during a mission of the autonomous cleaning robot, and associating a priority with the behavioral control zone based on the sensor data may include associating a priority with the behavioral control zone based on the type of object.

[0030] In some implementations, associating priorities with the behavioral control zones can include receiving a user selection of priorities based on a suggested priority, which can be based on sensor data collected by the autonomous cleaning robot as it moves about an environment.

[0031] In some implementations, the behavior can correspond to a focused clean behavior.

[0032] In some implementations, the intensive clean behavior can cause the autonomous cleaning robot to cover the behavior control zone more than once, increase the vacuum power of the autonomous cleaning robot, or decrease the movement speed of the autonomous cleaning robot.

[0033] In some implementations, initiating movement to the behavioral control zone may include initiating movement to the behavioral control zone at the start of a mission, and initiating behavior in the behavioral control zone may include initiating focused clean behavior in the behavioral control zone.

[0034] In some implementations, the method may further include initiating a movement to another behavioral control zone associated with a different priority that is lower than the priority associated with the behavioral control zone after initiating a behavior in the behavioral control zone, and initiating an intensive clean behavior in the other behavioral control zone in response to encountering the other behavioral control zone.

[0035] In some implementations, the method may further include receiving data indicative of a plurality of behavioral control zones and data indicative of a plurality of priorities associated with the plurality of behavioral control zones, respectively. Receiving the data indicative of the plurality of behavioral control zones and data indicative of the plurality of priorities may include receiving data indicative of the behavioral control zones and data indicative of the priorities. In some implementations, the method may further include receiving a schedule for causing the autonomous cleaning robot to prioritize cleaning a first subset of the plurality of behavioral control zones during a first mission and for causing the autonomous cleaning robot to prioritize cleaning a second subset of the plurality of behavioral control zones during a second mission.

[0036] In some implementations, initiating movement to a behavioral control zone based on priority may include initiating movement to a behavioral control zone based on priority in response to a mission having a scheduled duration less than a threshold duration.

[0037] In some implementations, initiating movement to a behavioral control zone based on a priority may include initiating movement to a behavioral control zone in response to a low battery status of the autonomous cleaning robot.

[0038] In some implementations, initiating movement to a behavioral control zone based on a priority may include initiating movement to a behavioral control zone before initiating movement to an area in the environment associated with a lower priority than the priority associated with the behavioral control zone.

[0039] In some implementations, initiating movement to a behavioral control zone based on priority can include initiating movement to a behavioral control zone in response to initiating a mission in the environment.

[0040] In some implementations, the behavioral control zone may be a first behavioral control zone, the priority may be a first priority, and the behavior may be a first behavior, and the method may further include receiving data indicative of a second behavioral control zone and data indicative of a second priority associated with the second behavioral control zone, initiating movement to the second behavioral control zone based on the second priority, and initiating a second behavior in the second behavioral control zone in response to encountering the second behavioral control zone in the environment. In some implementations, the first priority of the first behavioral control zone may be higher than the second priority of the second behavioral control zone, and initiating movement to the second behavioral control zone based on the second priority may include initiating movement to the first behavioral control zone based on the first priority and then initiating movement to the second behavioral control zone.

[0041] In some implementations, the priority can be a user-selected priority.

[0042] In some implementations, the method may include transmitting sensor data collected by the autonomous cleaning robot as it moves about an environment to a remote computing system. Priorities may be selected based on the sensor data. In some implementations, the sensor data may indicate an amount of debris detected in an area covered by a behavioral control zone during a mission of the autonomous cleaning robot, and priorities may be selected based on the amount of debris detected in the area covered by the behavioral control zone. In some implementations, the sensor data may indicate a type of debris detected in an area covered by a behavioral control zone during a mission of the autonomous cleaning robot, and priorities may be selected based on the type of debris. In some implementations, the sensor data may indicate objects proximate to or within the behavioral control zone during a mission of the autonomous cleaning robot, and priorities may be selected based on the type of object.

[0043] In some implementations, the priority can be a user-selected priority that is selected based on a recommended priority, which can be based on sensor data collected by the autonomous cleaning robot as it moves about an environment.

[0044] In some implementations, the behavior can correspond to an intensive clean behavior, which can cause the autonomous cleaning robot to cover the behavior control zone more than once, increase the vacuum power of the autonomous cleaning robot, or decrease the movement speed of the autonomous cleaning robot.

[0045] In a further aspect, a method includes receiving mapping data collected by the autonomous cleaning robot as the autonomous cleaning robot moves about an environment, and defining a behavioral control zone corresponding to a portion of the mapping data, such that when the autonomous cleaning robot crosses the behavioral control zone, the autonomous cleaning robot disables a behavior.

[0046] In another aspect, a method performed by an autonomous cleaning robot includes transmitting mapping data collected by the autonomous cleaning robot as the autonomous cleaning robot moves about an environment to a remote computing system, receiving data indicative of a behavioral control zone associated with a portion of the mapping data, and navigating through the behavioral control zone while disabling behavior in the behavioral control zone in response to encountering the behavioral control zone.

[0047] In some implementations, the behavior can correspond to a rug ride up behavior in which the autonomous cleaning robot moves in a backward direction.

[0048] In some implementations, a portion of the mapping data may correspond to a boundary in the environment.

[0049] In some implementations, disabling the behavior can include disabling a cleaning system of the autonomous cleaning robot.

[0050] In some implementations, disabling the behavior can include disabling a lag-ride-up behavior of the autonomous cleaning robot.

[0051] In another aspect, an autonomous cleaning robot includes a drive system configured to move the autonomous cleaning robot through an environment as the autonomous cleaning robot cleans floor surfaces in the environment, a sensor that generates mapping data as the autonomous cleaning robot moves about the environment, and a controller configured to execute instructions to perform operations, the operations including transmitting mapping data collected by the autonomous cleaning robot as the autonomous cleaning robot moves about the environment to a remote computing system, receiving data indicative of a behavioral control zone associated with a portion of the mapping data, and navigating through the behavioral control zone while disabling behavior in the behavioral control zone in response to encountering the behavioral control zone.

[0052] The details of one or more implementations of the subject matter described herein are set forth in the accompanying drawings and the description below. Other potential features, aspects, and advantages will become apparent from the description, drawings, and claims. [Brief explanation of the drawings]

[0053] [Figure 1] FIG. 1 is a top view of an example of an environment including an autonomous mobile robot and a behavior control zone for the autonomous mobile robot. [Figure 2] FIG. 1 is a side cross-sectional view of an autonomous mobile robot. [Figure 3A] FIG. 2 is a bottom view of the autonomous mobile robot. [Figure 3B] FIG. 2 is a top perspective view of the autonomous mobile robot. [Figure 4] 1 is a diagram of a communication network. [Figure 5] 1 is a flowchart of a process for defining a behavioral control zone. [Figure 6A] FIG. 1 is a schematic top view of sensor events in an environment. [Figure 6B]FIG. 1 is a schematic top view of sensor events in an environment. [Figure 7] FIG. 1 is a schematic top view of sensor events in an environment. [Figure 8] 10 is a flowchart of a process for presenting a map and indicators for behavioral control zones on a user computing device. [Figure 9] FIG. 10 is an illustration of a user interface presenting a notification to recommend a behavioral control zone. [Figure 10A] FIG. 1 is an illustration of a user interface presenting a map of an environment. [Figure 10B] FIG. 1 is an illustration of a user interface presenting a map of an environment. [Figure 10C] FIG. 1 is an illustration of a user interface presenting a map of an environment. [Figure 10D] FIG. 1 is an illustration of a user interface presenting a map of an environment. [Figure 11] 10 is a flowchart of a process for defining behavioral control zones associated with priorities. [Figure 12] 1 is a flowchart of a process for defining behavioral control zones associated with priorities, presenting a visual representation of the behavioral control zones, and using the behavioral control zones to control an autonomous mobile robot. [Figure 13A] FIG. 10 is an illustration of a user interface for providing an indicator of a recommended behavioral control zone. [Figure 13B] FIG. 10 is an illustration of a user interface for providing an indicator of a recommended behavioral control zone. [Figure 13C] FIG. 10 is an illustration of a user interface for providing indicators of behavioral control zones on a map. [Figure 13D] FIG. 10 is an illustration of a user interface for providing indicators of behavioral control zones on a map. [Figure 13E]FIG. 10 is an illustration of a user interface for allowing a user to define the name and type of a behavioral control zone. [Figure 13F] FIG. 10 is an illustration of a user interface for allowing a user to define the name and type of a behavioral control zone. [Figure 13G] FIG. 10 is an illustration of a user interface for allowing a user to select a behavioral control zone. [Figure 13H] FIG. 10 is an illustration of a user interface for allowing a user to select a behavioral control zone. [Figure 13I] FIG. 10 is an illustration of a user interface for allowing a user to select a schedule to associate with a behavioral control zone. [Figure 13J] FIG. 10 is an illustration of a user interface for allowing a user to select a schedule to associate with a behavioral control zone. [Figure 13K] FIG. 10 is an illustration of a user interface for allowing a user to select a schedule to associate with a behavioral control zone. [Figure 14A] FIG. 1 is a top view of an example environment including an autonomous mobile robot operating according to one or more behavioral control zones associated with one or more priorities. [Figure 14B] FIG. 1 is a top view of an example environment including an autonomous mobile robot operating according to one or more behavioral control zones associated with one or more priorities. [Figure 14C] FIG. 1 is a top view of an example environment including an autonomous mobile robot operating according to one or more behavioral control zones associated with one or more priorities. [Figure 14D] FIG. 1 is a top view of an example environment including an autonomous mobile robot operating according to one or more behavioral control zones associated with one or more priorities. [Figure 14E]FIG. 1 is a top view of an example environment including an autonomous mobile robot operating according to one or more behavioral control zones associated with one or more priorities. [Figure 14F] FIG. 1 is a top view of an example environment including an autonomous mobile robot operating according to one or more behavioral control zones associated with one or more priorities. [Figure 15] 1 is a flowchart of a process for defining a behavior control zone for disabling behavior of an autonomous mobile robot. [Figure 16] 1 is a flowchart of a process for defining behavior control zones for disabling behavior of an autonomous mobile robot, presenting a visual representation of the behavior control zones, and using the behavior control zones to control the autonomous mobile robot. [Figure 17A] FIG. 10 is an illustration of a user interface for establishing behavior control zones for disabling behavior of an autonomous mobile robot. [Figure 17B] FIG. 10 is an illustration of a user interface for establishing behavior control zones for disabling behavior of an autonomous mobile robot. [Figure 18A] FIG. 1 is a top view of an example environment including an autonomous mobile robot operating according to behavioral control zones for overriding the robot's behavior. [Figure 18B] FIG. 1 is a top view of an example environment including an autonomous mobile robot operating according to behavioral control zones for overriding the robot's behavior. [Figure 18C] FIG. 1 is a top view of an example environment including an autonomous mobile robot operating according to behavioral control zones for overriding the robot's behavior. DETAILED DESCRIPTION OF THE INVENTION

[0054] 1 , an autonomous mobile robot 100 moves about a floor surface 10 in an environment. The robot 100 is a cleaning robot (e.g., a robot vacuum, robot mop, or other cleaning robot) that cleans the floor surface 10 as the robot 100 navigates around the floor surface 10. The robot 100 returns to a docking station 50, which charges the robot 100. In examples where the robot is a robot vacuum that collects debris as the robot 100 travels around an environment, in some implementations the docking station 50 also evacuates debris from the robot 100, allowing the robot 100 to collect additional debris. As described in this disclosure, the robot 100 can prioritize cleaning specific portions of the floor surface 10 through systems and processes that allow for the selection of behavioral control zones. For example, a process may be implemented to define behavioral control zones 20a, 20b, 20c, and 20d (collectively referred to as behavioral control zones 20) on floor surface 10. In response to encountering one of these behavioral control zones 20, robot 100 may initiate a behavior. A behavioral control zone 20 may be a clean zone that triggers robot 100 to initiate a cleaning behavior within one of the behavioral control zones 20 in response to encountering the behavioral control zone. Behavior control zones 20 may be selected to correspond to areas in the environment associated with a higher incidence of debris. For example, behavioral control zone 20a corresponds to an area adjacent to a kitchen workspace (e.g., sink, stove, and kitchen counter, etc.). Behavior control zone 20b corresponds to an area under and adjacent to a table. Behavior control zone 20c corresponds to an area adjacent to a couch. Behavior control zone 20d corresponds to an area covering an entrance aisle rug.

[0055] As described in this disclosure, behavioral control zones 20 may be associated with priorities to generate a sequence in which robot 100 travels to the behavioral control zones. For example, behavioral control zone 20a has a higher priority than behavioral control zone 20b, which has a higher priority than behavioral control zone 20c, which has a higher priority than behavioral control zone 20d. As a result, as shown in FIG. 1 , in a mission in which robot 100 first cleans an area with a higher priority, robot 100 travels from docking station 50 along path 32 to behavioral control zone 20a, then to behavioral control zone 20b, then to behavioral control zone 20c, and then to behavioral control zone 20d.

[0056] Exemplary Autonomous Mobile Robot Referring to FIG. 2, as the robot 100 traverses the floor surface 10, the robot 100 collects debris 105 from the floor surface 10. Referring to FIG. 3A, the robot 100 includes a robot housing infrastructure 108. The housing infrastructure 108 can define the structural perimeter of the robot 100. In some examples, the housing infrastructure 108 includes a chassis, a cover, a bottom plate, and a bumper assembly. The robot 100 is a domestic robot with a small profile, allowing the robot 100 to fit under furniture in the home. The height H1 (shown in FIG. 2) of the robot 100 relative to the floor surface is, for example, 13 centimeters or less. The robot 100 is also compact. The overall length L1 (shown in FIG. 2) and overall width W1 (shown in FIG. 3A) of the robot 100 are each between 30 and 60 centimeters, e.g., between 30 and 40 centimeters, between 40 and 50 centimeters, or between 50 and 60 centimeters. The overall width W1 can correspond to the width of the housing infrastructure 108 of the robot 100.

[0057] The robot 100 includes a drive system 110 that includes one or more drive wheels. The drive system 110 further includes one or more electric motors that include electrically driven portions that form part of the electrical circuitry 106. A housing infrastructure 108 supports the electrical circuitry 106 (including at least a controller 109) within the robot 100.

[0058] The drive system 110 is operable to propel the robot 100 across the floor surface 10. The robot 100 can be propelled in a forward drive direction F or a backward drive direction R. The robot 100 can also be propelled so that the robot 100 turns in place or turns while moving in the forward drive direction F or the backward drive direction R. In the example shown in FIG. 3A , the robot 100 includes a drive wheel 112 extending through a bottom portion 113 of the housing infrastructure 108. The drive wheel 112 is rotated by a motor 114 to cause movement of the robot 100 along the floor surface 10. The robot 100 further includes a passive caster wheel 115 extending through the bottom portion 113 of the housing infrastructure 108. The caster wheel 115 is not powered. Together, the drive wheel 112 and the caster wheel 115 cooperate to support the housing infrastructure 108 above the floor surface 10. For example, the caster wheels 115 are disposed along the rear portion 121 of the housing infrastructure 108 and the drive wheels 112 are disposed forward of the caster wheels 115 .

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

[0060] In the example shown in Figures 2, 3A, and 3B, robot 100 is an autonomous mobile floor cleaning robot that includes a cleaning assembly 116 (shown in Figure 3A) operable to clean floor surface 10. For example, robot 100 can be a robotic vacuum cleaner in which cleaning assembly 116 is operable to clean floor surface 10 by ingesting debris 105 (shown in Figure 2) from floor surface 10. Cleaning assembly 116 includes a cleaning inlet portion 117 through which debris is collected by robot 100. Cleaning inlet portion 117 is positioned along front portion 122 of robot 100, forward of a center (e.g., center 162) of robot 100 and between side surfaces 150 and 152 of front portion 122.

[0061] The cleaning assembly 116 includes one or more rotatable members (e.g., rotatable members 118 driven by motors 120). The rotatable members 118 extend horizontally across a front portion 122 of the robot 100. The rotatable members 118 are positioned along the front portion 122 of the housing infrastructure 108 and extend along 75% to 95% of the width of the front portion 122 of the housing infrastructure 108 (e.g., corresponding to the overall width W1 of the robot 100). Referring also to FIG. 2, the cleaning inlet 117 is positioned between the rotatable members 118.

[0062] As shown in Figure 2, the rotatable members 118 are counter-rotating rollers. For example, the rotatable members 118 can rotate about parallel horizontal axes 146, 148 (shown in Figure 3A) to agitate debris 105 on the floor surface 10 and direct the debris 105 toward and into the cleaning inlet 117 and into a suction path 145 (shown in Figure 2) in the robot 100. Referring back to Figure 3A, the rotatable members 118 can be positioned entirely within the front portion 122 of the robot 100. The rotatable members 118 include an elastomeric shell that contacts the debris 105 on the floor surface 10 and directs the debris 105 through a cleaning inlet 117 between the rotatable members 118 and into the interior of the robot 100 (e.g., into a debris bin 124 (shown in FIG. 2)) as the rotatable members 118 rotate relative to the housing infrastructure 108. The rotatable members 118 further contact the floor surface 10 and agitate the debris 105 on the floor surface 10.

[0063] The robot 100 further includes a vacuum system 119 operable to generate an airflow through a cleaning inlet 117 between the rotatable members 118 and into the debris bin 124. The vacuum system 119 may include an impeller and a motor for rotating the impeller to generate the airflow. The vacuum system 119 cooperates with the cleaning assembly 116 to draw the debris 105 from the floor surface 10 and into the debris bin 124. In some cases, the airflow generated by the vacuum system 119 generates sufficient force to draw the debris 105 on the floor surface 10 upward through the gap between the rotatable members 118 and into the debris bin 124. In some cases, the rotatable member 118 contacts the floor surface 10 and agitates the debris 105 on the floor surface 10, thereby allowing the debris 105 to be more easily captured by the airflow generated by the vacuum system 119.

[0064] The robot 100 further includes a brush 126 that rotates about a non-horizontal axis (e.g., an axis that forms an angle between 75 and 90 degrees with respect to the floor surface 10). For example, the non-horizontal axis forms an angle between 75 and 90 degrees with respect to the longitudinal axis of the rotatable member 118. The robot 100 includes a motor 128 operably connected to the brush 126 for rotating the brush 126.

[0065] The brush 126 is a side brush that is offset laterally from the fore-aft axis FA of the robot 100 such that the brush 126 extends beyond the outer periphery of the housing infrastructure 108 of the robot 100. For example, the brush 126 may extend beyond one of the side surfaces 150, 152 of the robot 100, thereby enabling the brush 126 to engage debris on portions of the floor surface 10 that the rotatable member 118 typically cannot reach (e.g., a portion of the floor surface 10 outside the portion of the floor surface 10 directly below the robot 100). The brush 126 is also offset forward from the lateral axis LA of the robot 100 such that the brush 126 extends beyond the front surface 154 of the housing infrastructure 108. As shown in FIG. 3A , the brush 126 extends beyond the side surface 150, the corner surface 156, and the front surface 154 of the housing infrastructure 108. In some implementations, the horizontal distance D1 that the brush 126 extends beyond the side surface 150 is at least, e.g., 0.2 centimeters, e.g., at least 0.25 centimeters, at least 0.3 centimeters, at least 0.4 centimeters, at least 0.5 centimeters, at least 1 centimeter, or more. The brush 126 is positioned to contact the floor surface 10 during its rotation, allowing the brush 126 to easily engage debris 105 on the floor surface 10.

[0066] The brush 126 is rotatable about a non-horizontal axis in a manner to brush debris on the floor surface 10 into the cleaning path of the cleaning assembly 116 as the robot 100 moves. For example, in an example where the robot 100 is moving in a forward drive direction F, the brush 126 is rotatable in a clockwise direction (as viewed from a vantage point above the robot 100) such that debris contacted by the brush 126 moves toward the cleaning assembly and toward a portion of the floor surface 10 that is in front of the cleaning assembly 116 in the forward drive direction F. As a result, the cleaning inlet 117 of the robot 100 can collect debris swept up by the brush 126 as the robot 100 moves in the forward drive direction F. In an example where the robot 100 is moving in the rear drive direction R, the brush 126 can rotate in a counterclockwise direction (as viewed from a vantage point above the robot 100) such that debris contacted by the brush 126 moves toward a portion of the floor surface 10 behind the cleaning assembly 116 in the rear drive direction R. As a result, the cleaning inlet 117 of the robot 100 can collect debris swept up by the brush 126 as the robot 100 moves in the rear drive direction R.

[0067] In addition to the controller 109, the electrical circuitry 106 includes, for example, a memory storage element 144 and a sensor system with one or more electrical sensors. As described in this disclosure, the sensor system is capable of generating signals indicative of the current location of the robot 100 and of generating signals indicative of the location of the robot 100 as it travels along the floor surface 10.

[0068] The controller 109 is configured to execute instructions to perform one or more operations as described in this disclosure. A memory storage element 144 is accessible by the controller 109 and is disposed within the housing infrastructure 108. One or more electrical sensors are configured to detect features in the robot 100's environment. For example, with reference to FIG. 3A , the sensor system includes cliff sensors 134 disposed along the bottom portion 113 of the housing infrastructure 108. Each of the cliff sensors 134 is an optical sensor capable of detecting the presence or absence of an object (e.g., floor surface 10) below the optical sensor. Thus, the cliff sensors 134 can detect obstacles (e.g., drops, cliffs, etc.) below the portion of the robot 100 in which the cliff sensors 134 are disposed and redirect the robot accordingly.

[0069] 3B , the sensor system includes one or more proximity sensors capable of detecting objects along the floor surface 10 near the robot 100. For example, the sensor system can include proximity sensors 136 a, 136 b, and 136 c, which are disposed proximate the front surface 154 of the housing infrastructure 108. Each of the proximity sensors 136 a, 136 b, and 136 c includes an optical sensor facing outward from the front surface 154 of the housing infrastructure 108, which is capable of detecting the presence or absence of an object in front of the optical sensor. For example, detectable objects include obstacles (e.g., furniture, walls, people, and other objects in the environment of the robot 100).

[0070] The sensor system includes a bumper system including a bumper 138 and one or more bump sensors that detect contact between the bumper 138 and an obstacle in the environment. The bumper 138 forms part of the housing infrastructure 108. For example, the bumper 138 can form side surfaces 150, 152 and a front surface 154. For example, the sensor system can include bump sensors 139a, 139b. The bump sensors 139a, 139b can include break beam sensors, capacitance sensors, or other sensors that can detect contact between the robot 100 (e.g., the bumper 138) and an object in the environment. In some implementations, the bump sensor 139a can be used to detect movement of the bumper 138 along the fore-aft axis FA (shown in FIG. 3A ) of the robot 100, and the bump sensor 139b can be used to detect movement of the bumper 138 along the lateral axis LA (shown in FIG. 3A ) of the robot 100. The proximity sensors 136a, 136b, 136c can detect an object before the robot 100 touches the object, and the bump sensors 139a, 139b can detect an object touching the bumper 138, for example, in response to the robot 100 touching the object.

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

[0072] In some implementations, at least some of the proximity sensors 136a, 136b, 136c and the obstacle-following sensor 141 each include an optical emitter and an optical detector. The optical emitter emits an optical beam outward (e.g., horizontally outward) from the robot 100, and the optical detector detects reflections of the optical beam that reflect off objects near the robot 100. The robot 100 (e.g., using the controller 109) can determine the time-of-flight of the optical beam, thereby determining the distance between the optical detector and the object, and thus the distance between the robot 100 and the object.

[0073] In some implementations, the proximity sensor 136a includes an optical detector 180 and multiple optical emitters 182, 184. One of the optical emitters 182, 184 may be positioned to direct an optical beam outward and downward, and the other of the optical emitters 182, 184 may be positioned to direct an optical beam outward and upward. The optical detector 180 is capable of detecting reflections of or scattering from the optical beam. In some implementations, the optical detector 180 is an imaging sensor, a camera, or some other type of detection device for sensing optical signals. In some implementations, the optical beam shines a horizontal line along a planar vertical surface in front of the robot 100. In some implementations, the optical emitters 182, 184 each emit a fan of beams outward toward obstacle surfaces, such that a one-dimensional grid of dots appears on one or more obstacle surfaces. The one-dimensional grid of dots may be positioned on the horizontally extending line. In some implementations, the grid of dots can extend across multiple obstacle surfaces (e.g., multiple obstacle surfaces adjacent to one another). Optical detector 180 can capture an image representing the grid of dots formed by optical emitter 182 and the grid of dots formed by optical emitter 184. Based on the size of the dots in the image, robot 100 can determine the distance of the object on which the dot appears relative to optical detector 180 (e.g., relative to robot 100). Robot 100 can make this determination for each of the dots, thus allowing robot 100 to determine the shape of the object on which the dot appears. Additionally, if multiple objects are in front of robot 100, robot 100 can determine the shape of each of the objects. In some implementations, the objects can include one or more objects that are laterally offset from a portion of floor surface 10 directly in front of robot 100.

[0074] The sensor system further includes an image capture device 140 (e.g., a camera) oriented toward an upper portion 142 of the housing infrastructure 108. The image capture device 140 generates digital images of the robot 100's environment as the robot 100 moves about the floor surface 10. The image capture device 140 is angled in an upward direction, for example, between 30 and 80 degrees from the floor surface 10 around which the robot 100 navigates. When angled upward, the camera can capture images of wall surfaces of the environment such that features corresponding to objects above the wall surfaces can be used for localization.

[0075] When the controller 109 causes the robot 100 to perform a mission, the controller 109 operates the motors 114 to drive the drive wheels 112 and propel the robot 100 along the floor surface 10. Additionally, the controller 109 operates the motors 120 to rotate the rotatable member 118, the motors 128 to rotate the brushes 126, and the motors of the vacuum system 119 to generate airflow. To cause the robot 100 to perform various navigation and cleaning behaviors, the controller 109 executes software stored on the memory storage element 144 and causes the robot 100 to perform the behaviors by operating the various motors of the robot 100. The controller 109 operates the various motors of the robot 100 and causes the robot 100 to perform the behaviors.

[0076] The sensor system may further include sensors for tracking the distance traveled by the robot 100 or for detecting the movement of the robot 100. For example, the sensor system may include encoders associated with the motors 114 for the drive wheels 112, which may track the distance traveled by the robot 100. In some implementations, the sensor system includes an optical sensor facing downward toward the floor surface. The optical sensor may be an optical mouse sensor. For example, the optical sensor may be positioned to direct light through the bottom surface of the robot 100 toward the floor surface 10. The optical sensor may detect reflections of light and may detect the distance traveled by the robot 100 based on changes in floor features as the robot 100 travels along the floor surface 10. In some implementations, other movement sensors may include an odometer, an accelerometer, a gyroscope, an inertial measurement unit, and / or other sensors that generate signals indicative of the distance traveled, amount of rotation, speed, or acceleration of the robot 100. For example, the robot 100 includes an orientation sensor (e.g., a gyroscope, etc.) that generates a signal indicating the amount the mobile robot 300 has rotated from its heading. In some implementations, the sensor system can include a dead reckoning sensor (e.g., an IR wheel encoder, etc.) that generates a signal indicative of the rotation of the drive wheels 112, and the controller 109 uses the detected rotation to estimate the distance traveled by the robot 100.

[0077] The sensor system may further include a debris detection sensor 147 (shown in FIG. 2) for detecting debris on the floor surface 10. The debris detection sensor 147 may be used to detect portions of the floor surface 10 in an environment that are dirtier than other portions of the floor surface 10 in the environment. In some implementations, the debris detection sensor 147 can detect the amount of debris (or the rate of debris) passing through the suction path 145. The debris detection sensor 147 may be an optical sensor configured to detect debris as it passes through the suction path 145. Alternatively, the debris detection sensor 147 may be a piezoelectric sensor that detects debris as it impacts a wall of the suction path 145. In some implementations, the debris detection sensor 147 detects debris before it is drawn into the suction path 145 by the robot 100. The debris detection sensor 147 may be, for example, an image capture device that captures an image of a portion of the floor surface 10 in front of the robot 100. The image capture device may be positioned on the front portion of the robot 100 and oriented in such a manner to detect debris on the portion of the floor surface 10 in front of the robot 100. The controller 109 can then use these images to detect the presence of debris on this portion of the floor surface 10.

[0078] The sensor system may further include a bin volume sensor 151 (shown in FIG. 2) for determining the amount of debris in the debris bin 124. The bin volume sensor 151 may be an optical sensor, an infrared sensor, or an ultrasonic sensor that can indicate the level of debris in the debris bin 124. In some implementations, the bin volume sensor 151 may be a switch that is triggered in response to the level of debris reaching a certain threshold level. Alternatively, the bin volume sensor 151 may be a pressure sensor that is triggered in response to a certain air pressure generated by the vacuum system 119 of the robot 100.

[0079] The sensor system may further include a floor type sensor, which may be a downward-facing optical sensor that identifies the floor type of a portion of a floor surface below the robot 100, or a forward-facing optical sensor that identifies the floor type of a portion of a floor surface in front of the robot 100.

[0080] The controller 109 uses data collected by sensors in the sensor system to control the navigation behavior of the robot 100 during a mission. For example, the controller 109 uses sensor data collected by obstacle detection sensors (e.g., cliff sensor 134, proximity sensors 136a, 136b, 136c, and bump sensors 139a, 139b) of the robot 100 to enable the robot 100 to avoid obstacles in the environment of the robot 100 during a mission.

[0081] The sensor data may be used by the controller 109 for simultaneous localization and mapping (SLAM) techniques, in which the controller 109 extracts features of the environment represented by the sensor data. Mapping data may be generated from the sensor data to construct a map of the floor surface 10 of the environment. The sensor data collected by the image capture device 140 may be used for techniques such as vision-based SLAM (VSLAM), in which the controller 109 extracts visual features corresponding to objects in the environment and uses these visual features to construct a map. When the controller 109 directs the robot 100 across the floor surface 10 during a mission, the controller 109 uses SLAM techniques to determine the location of the robot 100 within the map by detecting features represented in the collected sensor data and comparing the features with previously stored features. The map formed from the mapping data may indicate the locations of traversable and non-traversable spaces within the environment. For example, the location of an obstacle may be shown on the map as an untraversable space, and the location of an open floor space may be shown on the map as a traversable space.

[0082] Sensor data collected by any of the sensors may be stored in the memory storage element 144. In addition, other data generated for SLAM techniques (including mapping data forming a map) may be stored in the memory storage element 144. This data created during a mission may include persistent data, where the persistent data is created during the mission and is usable during further missions. For example, the mission may be a first mission, and the further mission may be a second mission that occurs after the first mission. In addition to storing software for causing the robot 100 to perform its behaviors, the memory storage element 144 stores sensor data or data resulting from processing of the sensor data for access by the controller 109 from one mission to another. For example, the map may be a persistent map, where the persistent map is usable and updatable by the controller 109 of the robot 100 from one mission to another to navigate the robot 100 across the floor surface 10.

[0083] The persistent data (including the persistent map) enables the robot 100 to efficiently clean the floor surface 10. For example, the persistent map enables the controller 109 to orient the robot 100 toward open floor spaces and avoid untraversable spaces. Additionally, for subsequent missions, the controller 109 can use the persistent map to plan the navigation of the robot 100 through the environment to optimize the path taken during the mission.

[0084] In some implementations, the robot 100 may include a light indicator system 137 positioned on the top portion 142 of the robot 100. The light indicator system 137 may include a light source positioned in a lid 149 that covers the debris bin 124 (shown in FIG. 3A ). The light source may be positioned to direct light toward the periphery of the lid 149. The light source is positioned such that any portion of a continuous loop 143 on the top portion 142 of the robot 100 may be illuminated. The continuous loop 143 is positioned on a recessed portion of the top portion 142 of the robot 100 such that the light source can illuminate the surface of the robot 100 when activated.

[0085] The robot 100 can perform various missions in an environment. When the robot 100 is not operating in the environment to perform a mission, the robot 100 can dock at a docking station (such as, for example, docking station 50 (shown in FIG. 1 )). The missions performed by the robot 100 can vary depending on the implementation. The robot 100 can perform a cleaning mission, in which the robot 100 cleans a traversable portion of the environment. At the start of the cleaning mission, the robot 100 can leave the docking station 50 and then proceed to perform a combination of behaviors to cover and clean the traversable portion of the environment. The robot 100 can initiate specific behaviors during the cleaning mission to ensure that the robot 100 substantially covers the entire traversable portion of the environment (such as, for example, the coverage behavior and follow behavior described in this disclosure). The robot 100 can also initiate specific behaviors in response to the robot's 100 sensor system detecting specific features in the environment. These behaviors may be implemented as part of coverage and following behaviors performed by the robot 100 to cover traversable portions of the environment. For example, if the robot 100 encounters an obstacle during a coverage or following behavior, the robot 100 may perform an avoidance behavior as described in this disclosure to avoid the obstacle. The robot 100 may also initiate a particular behavior in response to encountering a behavioral control zone defined in the environment according to the methods described in this disclosure.

[0086] In some implementations, the robot 100 collects sensor data and generates mapping data sufficient to build a map of the environment. In some implementations, in addition to being able to perform cleaning missions, the robot 100 can perform training or mapping missions, in which the robot 100 collects sensor data, generates mapping data, and builds a map of the environment. During training missions, the robot 100 moves about the environment without activating the robot's 100's cleaning system, e.g., without activating the robot's 100's cleaning assembly 116 or vacuum system 119. Also, during mapping missions, the robot 100 can move at a faster average movement speed than the average movement speed the robot 100 moves during cleaning missions. Thus, training missions can enable the robot 100 to collect sensor data and generate mapping data sufficient to build a map of the environment while making less noise (e.g., produced by the robot's 100's cleaning system) and moving about the environment more quickly.

[0087] Exemplary Communication Network 4, an exemplary communication network 185 is shown. Nodes of the communication network 185 include the robot 100, a user computing device 188, an autonomous mobile robot 190, and a remote computing system 192. Using the communication network 185, the robot 100, the user computing device 188, the robot 190, and the remote computing system 192 can communicate with each other, send data to each other, and receive data from each other. In some implementations, the robot 100, the robot 190, or both the robot 100 and the robot 190 communicate with the user computing device 188 through the remote computing system 192. Alternatively or additionally, the robot 100, the robot 190, or both the robot 100 and the robot 190 communicate directly with the user computing device 188. Various types and combinations of wireless networks (e.g., Bluetooth, radio frequency, optical-based, etc.) and network architectures (e.g., mesh networks) may be used by the communication network 185.

[0088] In some implementations, the user computing device 188, as shown in FIG. 4, is a remote device that may be linked to a remote computing system 192, allowing the user 30 to provide input on the user computing device 188. The user computing device 188 may include user input elements (e.g., one or more of a touchscreen display, buttons, microphone, mouse, keyboard, or other device responsive to input provided by the user 30). The user computing device 188 may alternatively or additionally include immersive media (e.g., virtual reality), with the user 30 interacting with the immersive media to provide user input. In these cases, the user computing device 188 may be, for example, a virtual reality headset or head-mounted display. The user may provide input corresponding to commands for the mobile robot 100. In such cases, the user computing device 188 transmits a signal to the remote computing system 192, causing the remote computing system 192 to transmit a command signal to the mobile robot 100. In some implementations, the user computing device 188 is capable of presenting augmented reality images. In some implementations, the user computing device 188 is a smartphone, laptop computer, tablet computing device, or other mobile device.

[0089] In some implementations, the communication network 185 may include additional nodes. For example, the nodes of the communication network 185 may include additional robots. Alternatively or additionally, the nodes of the communication network 185 may include networked devices. In some implementations, the networked devices may generate information about the environment. The networked devices may include one or more sensors for detecting features in the environment (e.g., acoustic sensors, image capture systems, or other sensors that generate signals from which features can be extracted, etc.). The networked devices may include home cameras, smart sensors, etc.

[0090] In the communications network 185 shown in FIG. 4 , as well as in other implementations of the communications network 185, the wireless links may utilize various communications schemes, protocols, etc. (e.g., 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, etc.). In some cases, the wireless links include any cellular network standard used to communicate between mobile devices (including, but not limited to, standards recognized as 1G, 2G, 3G, 4G, or 5G). The network standard, if utilized, may recognize one or more generations of a mobile telecommunications standard, for example, by meeting a specification or standard (e.g., a specification maintained by the International Telecommunication Union, etc.). The 3G standard, if utilized, may correspond, for example, to the International Mobile Telecommunications-2000 (IMT-2000) specification, and the 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 may use various channel access methods (e.g., FDMA, TDMA, CDMA, or SDMA).

[0091] Example Process The robot 100 can be controlled in a particular manner according to the processes described in this disclosure to define, establish, and prioritize specific behavioral control zones in the environment. The processes described in this disclosure are exemplary. Although some operations of these processes may be described as being performed by the robot 100, by a user, by a computing device, or by another actor, in some implementations, these operations may be performed by actors other than those described. For example, operations performed by the robot 100 may in some implementations be performed by the remote computing system 192, by another computing device, or by a combination of multiple computing devices. Operations performed by the user 30 may be performed by a computing device or a combination of multiple computing devices. In some implementations, the remote computing system 192 does not perform the operations. Rather, other computing devices may perform the operations described as being performed by the remote computing system 192, and these computing devices may be in direct (or indirect) communication with each other and with the robot 100. And, in some implementations, the robot 100 is capable of performing the operations described as being performed by the remote computing system 192 or the user computing device 188 in addition to the operations described as being performed by the robot 100. Other variations are possible. Moreover, while the methods, processes, and operations described herein are described as including particular operations or sub-operations, in other implementations, one or more of these operations or sub-operations may be omitted, or additional operations or sub-operations may be added.

[0092] Behavior control zones are used to control the behavior of one or more autonomous mobile robots in an environment based on the location of the autonomous mobile robots. A behavior control zone can represent an area in a room where the autonomous mobile robot operates in a particular manner in response to being within the area. For example, such behavior can include controlling a particular behavior of the robot 100 while it is within the area (e.g., initiating a particular behavior while the robot 100 is within the area and / or disabling a particular behavior while the robot 100 is within the area). The behaviors controlled by a behavior control zone can vary depending on the implementation.

[0093] As the robot 100 moves through an environment, in the absence of a behavioral control zone, the robot 100 can initiate different behaviors to efficiently navigate and clean the environment. The behaviors can control the movement of the robot 100. For example, the robot 100 can initiate a coverage behavior to move through the environment and efficiently cover a surface area in the environment. The coverage behavior can include moving in a cornrow pattern across a floor surface. As the robot 100 moves through the environment in a coverage behavior, the robot 100 can initiate a follow behavior in response to detecting an obstacle in the environment. In a follow behavior, the robot 100 moves along an edge defined by the obstacle. The follow behavior allows the robot 100 to clean along the edge. The robot 100 can also initiate a follow behavior after performing a coverage behavior. The robot 100 can clean along the outer perimeter of a room in a follow behavior performed after performing a coverage behavior.

[0094] A movement behavior can also correspond to a behavior that helps the robot 100 avoid getting stuck in an obstacle field. A movement behavior can correspond to an escape behavior, in which the robot 100 performs one or more small movements and turns to avoid getting stuck in an obstacle field. A movement behavior can correspond to an avoidance behavior, in which the robot 100 avoids a particular area in the environment because the area contains an untraversable obstacle or object that may interfere with the operation of the robot's 100 drive system or cleaning system, for example. An avoidance behavior can be, for example, a lag ride-up behavior that is triggered in response to the robot 100 detecting that it is moving over an object (e.g., an area rug) that it is riding up. For example, the robot 100 can initiate a lag ride-up behavior in response to the robot's 100 motion sensors detecting a change in the robot's 100 acceleration, which can be a change in the robot's 100 pitch and / or roll above a threshold level.

[0095] Alternatively, a behavior can control the cleaning operation of the robot. Such a behavior can help the robot collect debris in dirtier areas. For example, a behavior can control a parameter associated with the cleaning operation to improve the debris pickup capacity of the robot. The parameter can be the suction power of the vacuum system 119 of the robot 100, the movement speed of the robot 100, the rotation speed of the brush 126, the rotation speed of the rotatable member 118, or the movement pattern of the robot 100. The robot can initiate a behavior in response to detecting debris on the floor surface or in response to detecting a particular rate of debris collection by the robot. Alternatively, a behavior can disable a particular cleaning operation of the robot 100 (e.g., the vacuum system 119, the brush 126, or the rotatable member 118 of the robot 100). This behavior may be used to reduce the noise produced by the vacuum system 119 of the robot 100 as the robot 100 passes through a particular area in the environment, or may be used to reduce the likelihood that the brushes 126 or rotatable member 118 will become entangled in objects in the area as the robot 100 moves through the area in the environment.

[0096] Behavioral control zones can be used to trigger or disable specific behaviors of the robot based on the location of the robot. For example, if the behavior is a locomotion behavior, the behavioral control zone can cause the robot 100 to initiate or disable the locomotion behavior (e.g., a ride-up behavior, an escape behavior, an avoidance behavior, or a follow behavior).

[0097] If the movement behavior is an escape behavior and the behavioral control zone causes the robot to initiate an escape behavior, entering or encountering the behavioral control zone may indicate that the robot 100 is near an obstacle, which may cause the robot 100 to become stuck. The robot 100 may begin movement in a manner that avoids becoming stuck with a particular obstacle near the behavioral control zone. If the movement behavior is an avoidance behavior and the behavioral control zone causes the robot to initiate an avoidance behavior, the behavioral control zone is a keepout zone. The robot 100 may move in a manner that avoids entering the interior of the behavioral control zone. Such movement may include turning toward the behavioral control zone and then moving away from the behavioral control zone. If the movement behavior is a follow behavior and the behavioral control zone causes the robot to initiate a follow behavior, the robot 100 may follow along the perimeter of the behavioral control zone without entering the interior of the behavioral control zone.

[0098] In some implementations, the behavior controlled by the behavioral control zone can be a parameter of the robot's 100 cleaning process. The behavioral control zone can be, for example, an intensive clean zone. The parameter can be the suction power of the robot's 100 vacuum system 119, the robot's 100 movement speed, the rotational speed of the brush 126, the rotational speed of the rotatable member 118, or the robot's 100 movement pattern. The suction power can be increased, the robot's 100 movement speed can be decreased, and / or the robot's 100 movement pattern can be adjusted to pass over the area covered by the behavioral control zone multiple times (e.g., two, three, or more times). The behavior can correspond to an intensive clean behavior, in which the robot 100 performs an intensive clean of the area covered by the behavioral control zone. To perform the intensive clean, the behavioral control zone causes the robot 100 to adjust the parameter of the robot's 100 cleaning process.

[0099] The type of behavioral control zone can vary in implementation. In some implementations, the behavioral control zone is a keep-out zone, which causes the robot 100 to perform locomotion behaviors to avoid entering the keep-out zone. In some implementations, the behavioral control zone can be a quiet zone, which causes the robot 100 to initiate quiet behaviors, which can include initiating locomotion behaviors and initiating changes in cleaning parameters of the robot 100. In quiet behaviors, certain systems of the robot 100 are deactivated or activated at reduced power to reduce noise produced by the robot 100 as it moves through the quiet zone. Motors of the robot's 100 vacuum system and / or motors of rotatable members of the robot 100 can be deactivated or operated at reduced power. The motors of the drive system of the robot 100 may be operated at a lower power, thereby causing the robot 100 to traverse the quiet zone more slowly than it would traverse areas of the environment not covered by the behavioral control zone.

[0100] In some implementations, the behavioral control zone is a clean zone, where the robot 100, in response to encountering the behavioral control zone, restricts itself to cleaning the area covered by the behavioral control zone. For example, the robot 100, in response to encountering the behavioral control zone, can move in a manner that restricts its movement within the behavioral control zone. Only after covering the area within the behavioral control zone does the robot 100 continue to clean other parts of the environment. In some implementations, the behavioral control zone is an intensive clean zone, where the robot 100 restricts itself to cleaning the area covered by the behavioral control zone and also changes cleaning parameters of the robot 100 to allow the robot 100 to perform intensive clean behaviors in the intensive clean zone (e.g., making multiple passes over the area, increasing vacuum power, decreasing robot movement speed, etc.). The intensive clean zone can be a multi-pass zone, a double-pass zone, a triple-pass zone, etc.

[0101] In some implementations, the behavioral control zone is a warning zone in which the robot 100 operates its systems in a warning behavior to avoid a potential obstacle. The warning zone can cover an area near an obstacle previously detected by the robot 100. For example, if the potential obstacle is one that limits the robot 100's movement across a floor surface, the robot 100 can reduce its movement in the warning zone before the robot 100 uses its sensor system to detect the obstacle that triggered the creation of the warning zone. Alternatively, the obstacle can be one that can easily become entangled in the robot 100's rotatable members, side brushes, or drive wheels. In such an example, the warning zone can cause the robot 100 to reduce the speed of its drive wheels, its rotatable members, or its side brushes. The size of the warning zone can correspond to a computer-selected or user-selected obstacle avoidance sensitivity associated with the warning zone. Examples of alert behaviors, alert zones, and obstacle avoidance sensitivity are described in U.S. patent application Ser. No. 16 / 588,295, entitled "Image Capture Devices for Autonomous Mobile Robots and Related Systems and Methods," filed Sep. 30, 2019, the entirety of which is incorporated by reference into this disclosure.

[0102] In implementations in which multiple types of autonomous mobile robots operate in an environment, a behavioral control zone can limit which actions each of the robots can perform in the behavioral control zone. For example, if both a robotic vacuum cleaner and a robotic mop operate in the environment, a behavioral control zone can be defined such that only one of the robotic vacuum cleaner or the robotic mop responds to encountering the behavioral control zone. Alternatively or additionally, a behavioral control zone can cause both the robotic vacuum cleaner and the robotic mop to respond to the behavioral control zone. A behavioral control zone can be a mixed-type behavioral control zone, where the type of behavioral control zone for the robotic vacuum cleaner is different from the type of behavioral control zone for the robotic mop. For example, in an implementation in which a behavioral control zone covers a rug, the behavioral control zone can be a keepout zone for the robotic mop and a clean zone for the robotic vacuum cleaner.

[0103] As discussed in this disclosure, behavioral control zones may be defined and then associated with priorities. FIGS. 5, 6A-6B, 7-9, and 10A-10D illustrate an exemplary method for defining behavioral control zones. FIG. 5 illustrates a flowchart of an exemplary method for defining behavioral control zones. Sensor data collected by an autonomous mobile robot (e.g., robot 100 shown in FIG. 1) may be used to provide recommended behavioral control zones, and a user may accept or modify the recommended behavioral control zones and define behavioral control zones for controlling the behavior of robot 100. This method is described for control of robot 100 as described herein. In other implementations, other types of autonomous mobile robots may be controlled by defining behavioral control zones according to the implementation of the method shown in FIG. 5.

[0104] 5, process 200 includes operations 202, 204, and 206. Process 200 is used to define behavioral control zones for controlling the behavior of robot 100 (or other autonomous mobile robots operating in an environment). Among other things, when robot 100 encounters a behavioral control zone, robot 100 can initiate a particular behavior in response to the encounter. Robot 100 can encounter a behavioral control zone when it is within a particular distance of the behavioral control zone or when it enters the behavioral control zone.

[0105] A subset of the sensor events may be identified as candidates for recommending a behavioral control zone to a user. For example, in act 202, the subset of sensor events is identified based on the locations of the sensor events. Before the subset of sensor events is identified, the robot 100 may collect sensor data as the robot 100 moves about the environment. The sensor data may indicate sensor events and locations associated with the sensor events.

[0106] A sensor event may occur when one or more sensors of a sensor system of the robot 100 are triggered. An environmental feature may be associated with the sensor event. The location of the sensor event may correspond to the location of the robot 100 when the sensor event occurs, or may correspond to the location of a feature detected by a sensor of the robot 100 where the sensor event occurred.

[0107] The features associated with the subset of sensor events and detected by the sensors of the robot 100 may vary in implementation. For example, the features detected by the sensors of the robot 100 may correspond to objects in the environment. The objects may be obstacles. In such an example, the sensor events are obstacle detection events, in which one or more sensors of the robot 100 are triggered. The obstacles may define an untraversable space on the floor surface 10, i.e., a portion of the floor surface 10 across which the robot 100 cannot move due to the presence of the object. The obstacles may be, for example, fixtures, walls, cliffs, cords, or other types of stationary or movable objects in the environment that may impede the movement of the robot 100. In some implementations, the features detected by the sensors of the robot 100 may correspond to the geometry of a traversable space defined by one or more objects in the environment. For example, walls and other objects in the environment may define a narrow passageway in the traversable space (e.g., having a width between one and three times the width of the robot 100). A sensor event can occur based on detecting the presence of a passage in a traversable space for the robot 100. In some implementations, an obstacle can be a feature on the floor surface 10 that can impede the operation of the robot 100. For example, the obstacle can be caught in a wheel, brush, or rotatable member of the robot 100. The obstacle can be a cord, article of clothing, or other object that can wrap around a rotating member of the robot 100.

[0108] In some implementations, features detected by sensors of the robot 100 can correspond to debris on the floor surface 10. For example, the features can correspond to debris detected on the floor surface 10 or debris ingested by the robot 100. A subset of the sensor events can be debris detection events, in which the robot 100 detects debris on the floor surface 10 or debris ingested by the robot 100.

[0109] In some implementations, the feature may correspond to an object in the environment associated with debris. For example, the object may be a dining room table. The sensor event may correspond to one or more sensors of the robot 100 detecting the dining room table. Because debris may be dropped more frequently around the dining room table compared to certain other objects, the detection of the dining room table may trigger a sensor event for purposes of defining a behavioral control zone. A behavioral control zone may also be recommended if the robot 100 does not detect debris in the vicinity around the dining room table. Other objects may also be associated with frequent debris drops. For example, the object may be a doormat, a door, a kitchen island, a dining room table, a trash can, a window, a pet house, a cabinet, or another feature object in the environment associated with increased debris.

[0110] In examples where a feature may correspond to an object in the environment that is associated with debris, this feature, in combination with one or more contextual features in the environment, can serve as the basis for recommendations to define behavioral control zones. A feature alone may not be associated with debris. For example, the object may be a table, and the table, by itself, may not necessarily be associated with debris. The table may be an office table, an end table, or some other table onto which debris is not typically dropped. One or more contextual features may indicate that the table is a type of table typically associated with debris (e.g., a dining table or a coffee table). One or more contextual features may indicate a type of room, which may indicate a type of table. One or more contextual features may correspond to an object proximate to the table, which indicates a type of table or a type of room. Alternatively, one or more contextual features may be features on a wall of a room, which indicates a type of room.

[0111] Other features may be detected by the robot 100 and may trigger a sensor event. For example, the feature detected by the sensors of the robot 100 to trigger a sensor event may be a floor surface type or a room type.

[0112] In some implementations, the sensor event is an error event, in which an error associated with the robot 100 is triggered as the robot 100 moves around the floor surface 10. In response to such an error event, the robot 100 may stop moving during a mission. In some implementations, the error event includes a wheel drop event, in which one or more of the drive wheels 112 of the robot 100 extend from the robot beyond a threshold distance. The wheel drop event may be detected by a wheel drop sensor of the robot 100. In some implementations, the error event includes a wheel slip event, in which one or more of the drive wheels 112 of the robot 100 lose traction with the floor surface 10 across which the robot 100 is moving. The wheel slip event may be detected by one or more of the sensors of the robot 100 (e.g., an encoder, an odometer, or other movement sensors of the robot 100, etc.). In some implementations, the error event includes a wedge event, in which the robot 100 becomes pinched between an obstacle in the environment above the robot 100 and the floor surface 10. The wedge event may be detected by a bump sensor on the robot 100 or the image capture device 140 on the robot 100. In some implementations, the error event includes a robot stuck event, in which the robot 100 moves into an area in the environment and is unable to exit the area. For example, a traversable portion of the area may have constrained dimensions that make it difficult for the robot 100 to exit the area. In some implementations, the error event includes a brush stall event, in which the brushes 126 or the rotatable member 118 are unable to rotate. The brush stall event may be detected by an encoder associated with the motor driving the brushes 126 or the motor driving the rotatable member 118.

[0113] In some implementations, as discussed in this disclosure with respect to FIG. 15 , a sensor event can indicate a behavior that should be disabled to allow the robot 100 to traverse a portion of a floor surface. A behavior can be triggered by one or more sensor events. For example, the behavior can be an obstacle avoidance behavior, e.g., to avoid an obstacle above the floor surface or to avoid a cliff or drop. For example, the obstacle avoidance behavior can be a cliff avoidance behavior or a rag-ride-up behavior. An obstacle avoidance behavior typically allows the robot 100 to navigate around an environment with fewer errors. In some implementations, the obstacle avoidance behavior can be triggered by a feature on the floor surface that does not constitute an untraversable obstacle for the robot 100. For example, the surface feature can be a dark-colored area of ​​the floor surface that would trigger a cliff avoidance behavior or a ridge extending along a portion of the floor surface that would trigger a rag-ride-up behavior. Both the dark-colored area and the ridge are traversable by the robot 100. A bump can be a boundary between two regions of an environment (e.g., between two rooms in an environment). As discussed in this disclosure with respect to Figure 15, behavioral control zones that disable cliff avoidance or lag ride-up behaviors can be established to allow the robot 100 to traverse these portions of the floor surface.

[0114] A set of sensor events that can be used as a basis for recommending a behavioral control zone can include a specific sensor event that triggers an obstacle avoidance behavior and one or more sensor events that indicate a portion of a floor surface is traversable. For example, the one or more sensor events can include mapping data that indicates a traversable floor surface portion adjacent to the portion of the floor surface. The traversable floor surface portion can indicate that the portion of the floor surface is traversable. For example, if the portion of the floor surface includes a ridge extending along the floor surface, a first adjacent portion can be on one longitudinal side of the ridge, and a second adjacent portion can be on the other longitudinal side of the ridge. Alternatively, the one or more sensor events can correspond to mapping data that indicates that a percentage of the perimeter of the floor surface around the portion of the floor surface is above a threshold percentage (e.g., at least 55%, 60%, 65%, 70%, 75%, or more). In some implementations where the behavior to be disabled is a rug-ride-up behavior, the one or more sensor events can correspond to floor type data that indicates that the floor type around the portion of the floor surface is not, for example, a rug or carpet. In some implementations where the behavior to be disabled is a cliff avoidance behavior, one or more sensor events may correspond to image data that indicates that a portion of the floor surface is not a drop or cliff.

[0115] For example, if the robot 100 includes a bump sensor, a sensor event may occur when the bump sensor is triggered. The location of the sensor event may correspond to the location of the robot 100 when the bump sensor is triggered, or may correspond to the location of contact between the robot 100 and an object in the environment that triggers the bump sensor. In a further example, if the robot 100 includes an image capture device 140, a sensor event may occur when the image capture device 140 captures an image containing a particular object in the environment. The object may be an obstacle in the environment that the robot 100 may contact during navigation. The location of the sensor event may correspond to the location of the robot 100 when the image capture device 140 detects the object. Alternatively, the location of the sensor event may correspond to the estimated location of the detected object. The image captured by the image capture device 140 may be analyzed to determine the position of the object relative to the robot 100, so that the location of the object in the environment may be estimated. Sensor events may also occur when other sensors on the robot 100 are similarly triggered. For example, a sensor event can occur based on sensing performed by a proximity sensor 136a, 136b, 136c, a cliff sensor 134, an obstacle following sensor 141, an optical mouse sensor, an encoder, a brush motor controller, a wheel motor controller, a wheel drop sensor, an odometer, or other sensors in the sensor system.

[0116] In some implementations, multiple sensors may be involved in a sensor event. For example, one of the proximity sensors 136a, 136b, 136c may detect an obstacle in the environment, and the image capture device 140 may also detect the same obstacle. The combination of data from the proximity sensors and the image capture device 140 may indicate that a sensor event has occurred. The location of the sensor event may be determined based on the combination of data from the proximity sensors and the image capture device 140. Other combinations of sensors described herein may be used as the basis for a sensor event.

[0117] The criteria for identifying sensor events that are considered to be part of the subset used to recommend a behavioral control zone in operation 202 can vary in implementation. Figures 6A, 6B, and 7 illustrate examples of subsets of sensor events that meet the criteria for recommending a behavioral control zone according to process 200.

[0118] Referring to FIG. 6A , an environment 210 in which sensor events 212 occurred is illustrated. To identify a subset of sensor events 212 for recommending a behavioral control zone, the locations of the sensor events 212 are determined. FIG. 6A is a schematic diagram of the locations of these sensor events 212 within the environment 210. The subset of sensor events 212 is identified based on the distance between two or more of the sensor events 212 in the subset. In some implementations, sensor events 212 are considered to be in a subset that can serve as the basis for recommending a behavioral control zone if the sensor events 212 are separated from each other by no more than a threshold distance 214. For illustrative purposes, only one of the sensor events 212 (represented as an “X” shaped mark) and only one of the threshold distances 214 are labeled (represented as a dashed circle).

[0119] The criteria for identifying a subset of sensor events 212 for recommending a behavioral control zone can vary in implementation. In some implementations, only one criterion is used to identify the subset of sensor events. The criterion can be a threshold distance criterion, a threshold volume criterion, or other suitable criterion. In some implementations, multiple criteria (e.g., two or more criteria) are used to identify the subset of sensor events.

[0120] 6A , a cluster 216 of sensor events 212 satisfies the threshold distance criterion. Specifically, each sensor event 212 in the cluster 216 is no more than a threshold distance 214 from at least one other sensor event 212 in the cluster 216. Also, a cluster 218 of sensor events 212 satisfies the threshold distance criterion because the sensor events 212 in the cluster 218 are no more than the threshold distance 214 from each other. A cluster 220 of sensor events 212 does not satisfy the threshold distance criterion. The sensor events 212 in the cluster 220 are spaced apart from each other by more than the threshold distance 214.

[0121] In some implementations, a cluster 216 of sensor events 212 satisfies a threshold quantity criterion. For example, in some implementations, the threshold quantity criterion requires that a cluster contain a threshold quantity of sensor events. For example, the threshold quantity can be three sensor events 212. In other implementations, the threshold quantity is four, five, six, or more sensor events. Cluster 216 contains three sensor events 212 and therefore satisfies the criterion requiring that a cluster contain at least three sensor events 212. Because cluster 218 contains only two sensor events, cluster 218 does not satisfy the threshold quantity criterion. Because cluster 220 contains three sensor events, cluster 220 satisfies the sensor event quantity criterion.

[0122] 6B, because only cluster 216 satisfies both the threshold distance criterion and the threshold quantity criterion, only cluster 216 of sensor events 212 is used to recommend behavioral control zone 222. Clusters 218 and 220 do not satisfy both of these criteria and therefore are not used to recommend behavioral control zones.

[0123] The criteria used to recommend a behavioral control zone may vary in other implementations as well. Referring to FIG. 7 , sensor event 232 (represented as a solid “X”-shaped mark), sensor event 234 (represented as a dashed “X”-shaped mark), and sensor event 236 (represented as a circular mark) are triggered in environment 230. Two types of sensor events occur: sensor event 232 and sensor event 234 are of a first type, and sensor event 236 is of a second type. For example, the first type may be an obstacle detection sensor event, and the second type may be a debris detection sensor event. Sensor event 232 and sensor event 234 differ in the order in which they occur. Sensor event 234 occurs before sensor event 232. For example, sensor event 234 is triggered in a first mission of the autonomous mobile robot, and second event 232 is triggered in a second mission of the autonomous mobile robot. The first mission is an earlier mission that precedes the second mission.

[0124] Clusters 241-249 of sensor events are identified in the environment. Clusters 241-249 can include one type of sensor event or both types of sensor events.

[0125] The criteria for selecting sensor events 232, 234, 236 to be considered part of the subset used to recommend a behavioral control zone may include one or more of the criteria described with respect to FIGS. 6A and 6B . In some implementations, additional or alternative criteria may be used. For example, other criteria may include a dock proximity threshold criterion. In the example shown in FIG. 7 , a cluster 241 of sensor events 232 satisfies the threshold distance criterion and the threshold quantity criterion. However, the cluster 241 does not satisfy the dock proximity threshold criterion. The location of the cluster 241 is positioned at a distance equal to or less than the threshold distance from the location of a docking station 250 for the autonomous mobile robot. The location of the cluster 241 may correspond to any one of the locations of the sensor events 232 in the cluster 241, or may correspond to a value (e.g., a mean location or a centroid) computed based on the locations of the sensor events 232 in the cluster 241. Because the location of the cluster 241 is within a threshold distance from the location of the docking station, a behavioral control zone is not recommended for the cluster 241 of the sensor event 212 to avoid defining a behavioral control zone that would prevent the autonomous mobile robot from docking with the docking station 250.

[0126] In some implementations, the criteria are satisfied based on whether a cluster including a first type of sensor event is near a second type of sensor event. If a cluster of the first type of sensor event is within a threshold distance or would define a behavioral control zone covering the second type of sensor event, the behavioral control zone is not recommended. In the example shown in FIG. 7 , cluster 242 includes sensor event 232 and some of sensor events 236. Cluster 242 of sensor event 232 satisfies both the threshold distance criterion and the threshold quantity criterion. However, because cluster 242 is within a threshold distance (which is different from the threshold distance for the threshold distance criterion) from at least one of sensor events 236, cluster 242 is not used as the basis for recommending a behavioral control zone. For example, in an implementation where sensor event 232 represents an obstacle detection sensor event and sensor event 236 represents a debris detection sensor event, a behavioral control zone for the obstacle detection sensor event is not recommended so that the autonomous mobile robot can enter the area containing sensor event 232 and clean the debris therein.

[0127] In some implementations, the timing criteria are met based on an amount of time. In the example shown in FIG. 7 , cluster 243 includes sensor event 234, which is triggered at an earlier time than sensor event 232. In some implementations, the amount of time since sensor event 234 occurred exceeds a threshold amount of time, and therefore, the timing criteria are not met. The threshold amount of time can be one, two, three, or more days, or one, two, or more weeks. In some implementations, the timing criteria are met based on the number of missions that have elapsed since sensor event 234 occurred. The amount of missions since sensor event 234 occurred exceeds a threshold amount of missions, and therefore, the timing criteria are not met. The threshold amount of missions can be one mission, two missions, three missions, or more missions. Because the timing criteria are not met, cluster 243 is not used to recommend a behavioral control zone.

[0128] In some implementations, the threshold distance criteria and threshold amount criteria are used regardless of the type of sensor event in the cluster. For example, cluster 244 includes only sensor event 236. The threshold distance criteria and threshold amount criteria may use the same threshold distance and the same threshold amount, respectively, as the threshold distance criteria and threshold amount criteria for the cluster of sensor events 232. In other implementations, the threshold distance and threshold amount may vary depending on the type of sensor event. For example, the threshold distance for a debris detection sensor event may be higher or lower than the threshold distance for an obstacle detection sensor event. In the example shown in FIG. 7 , cluster 244 of sensor events 236 meets the associated criteria for identifying a subset of sensor events for recommending a behavioral control zone. Therefore, behavioral control zone 260 is recommended. In the example where sensor event 236 is a debris detection sensor event, the recommended behavioral control zone 260 may cause the autonomous mobile robot to perform an intensive clean behavior.

[0129] The cluster 245 of sensor events 232 does not meet the threshold volume criteria. A behavioral control zone is not recommended based on the cluster 245.

[0130] In some implementations, the criterion is satisfied based on whether the behavioral control zone blocks a path between a first region and a second region in the environment, thereby preventing the autonomous mobile robot from entering the region. In the example shown in FIG. 7 , a cluster 246 of sensor events 232 is located in a path 265 between a first room 266 and a second room 267. The cluster 246 satisfies the threshold distance criterion and the threshold quantity criterion. However, if a behavioral control zone were created to cover the cluster 246 of sensor events 232, such a behavioral control zone would prevent the autonomous mobile robot from moving from the first room 266 to the second room 267, or would prevent the autonomous mobile robot from moving from the second room 267 to the first room 266.

[0131] In contrast, a cluster 247 of sensor events 232 is located in a path 268 between a first room 266 and a third room 269. A behavioral control zone 261 recommended based on the cluster 247 separates the first room 266 and the third room 269 and provides a traversable path 270 between the first room 266 and the third room 269. The traversable path 270 can be at least as wide as the autonomous mobile robot. In some implementations, to satisfy the criteria, the width of the traversable path 270 must be at least one robot width, two robot widths, or more.

[0132] Cluster 248 includes both sensor event 232 and sensor event 234. Cluster 248 meets the threshold volume and distance criteria. Thus, recommended behavioral control zone 262 is defined.

[0133] In some implementations, the criteria are met based on whether the cluster contains sensor events across multiple missions within a predetermined time period. In such implementations, behavioral control zone 261 and behavioral control zone 260 may not be recommended because sensor event 232 and sensor event 236 occurred only during a single mission. Nevertheless, behavioral control zone 262 is still recommended because cluster 248 includes sensor event 234 occurring during an earlier mission and sensor event 232 occurring in a later mission. The sensor data collected by the autonomous mobile robot and associated with sensor event 232 and sensor event 234 is collected during multiple missions and within a predetermined time period. The amount of multiple missions can be within a threshold amount (e.g., two, three, or more missions). The time period can be within a threshold time period (e.g., one, two, three, or more days, months, or weeks).

[0134] In some implementations, instead of using cluster 248 as the basis for the recommended behavioral control zone, two individual clusters 248a, 248b are used as the basis for the recommended behavioral control zone 262. Each cluster 248a, 248b independently satisfies the criteria for recommending a behavioral control zone. However, the sensor events 232 in cluster 248a and the sensor events 232 in cluster 248b may not together satisfy a particular criterion (e.g., a distance threshold criterion). For example, the nearest sensor events 232 in cluster 248a and in cluster 248b may be separated by a distance greater than the distance threshold for the distance threshold criterion. As a result, two individual behavioral control zones are recommended, one for cluster 248a and another for cluster 248b. In some implementations, if two or more recommended behavioral control zones satisfy the behavioral control zone separation criteria, the two or more recommended behavioral control zones are combined with each other to form a single recommended behavioral control zone. For example, the resulting recommended behavioral control zones for clusters 248a, 248b may be separated by a distance equal to or less than a threshold distance for the behavioral control zone separation criterion. The threshold distance for the behavioral control zone criterion may be, for example, between 0.5 and 4 times the width of the robot, such as 0.5 to 1.5 times, 1 to 2 times, 1 to 3 times, 2 to 4 times, etc. The resulting recommended behavioral control zones are combined with each other to form a single recommended behavioral control zone (i.e., recommended behavioral control zone 262 covering both cluster 248a and cluster 248b).

[0135] As described herein, the distance threshold criterion is satisfied when the sensor events in a cluster are at or below a threshold distance. In some implementations, the minimum separation criterion is satisfied when the sensor events are separated by at least a threshold distance that is different from the threshold distance for the distance threshold criterion. The threshold distance for the minimum separation criterion represents a lower bound for the separation between the sensor events, and the threshold distance for the distance threshold criterion represents an upper bound for the separation between the sensor events. In some implementations, the minimum separation criterion is satisfied when at least one of the sensor events in the subset is greater than the distance threshold for the minimum separation criterion. In the example shown in FIG. 7 , the cluster 249 of sensor events 232 is too close together. Each of the sensor events 232 in the cluster 249 is within the distance threshold of each of the other sensor events 232 in the cluster 249. Because the minimum separation criterion is not satisfied, no behavioral control zone is recommended based on the cluster 249 of sensor events 232.

[0136] 5, a subset of sensor events may be identified in operation 202 and then used to provide a recommendation for a behavioral control zone. After operation 202 is performed, data indicating the recommended behavioral control zone is provided to a user computing device in operation 204. The recommended behavioral control zone may contain a subset of locations associated with the subset of sensor events. In particular, the area covered by the recommended behavioral control zone may include the subset of locations associated with the subset of sensor events.

[0137] At operation 206, a user-selected behavioral control zone is defined in response to a user selection from the user computing device. The user-selected behavioral control zone may be based on the recommended behavioral control zone. For example, a user may operate the user computing device and provide a user selection. The user selection may indicate acceptance of the recommended behavioral control zone, rejection of the recommended behavioral control zone, or modification of the recommended behavioral control zone. In some implementations, the user selection corresponds to acceptance of the recommended behavioral control zone, such that the user-selected behavioral control zone is identical to the recommended behavioral control zone.

[0138] Defining the user-selected behavioral control zone may include defining specific parameters of the user-selected behavioral control zone. The parameters of the suggested behavioral control zone (as defined in act 204) may serve as a starting point for modification by the user to define the parameters of the user-selected behavioral control zone.

[0139] In some implementations, defining the user-selected behavioral control zone may include defining geometric characteristics of the user-selected behavioral control zone. For example, to define the user-selected behavioral control zone, the perimeter of the user-selected behavioral control zone, one or more dimensions of the user-selected behavioral control zone, the shape of the user-selected behavioral control zone, or other geometric characteristics of the user-selected behavioral control zone may be defined. The geometric characteristics of the recommended behavioral control zone may be defined in operation 204, and then the user may modify one or more of the geometric characteristics of the recommended behavioral control zone to define the user-selected behavioral control zone in operation 206. For example, the user may modify the length or width of the recommended behavioral control zone to define the length or width of the user-selected behavioral control zone.

[0140] In some implementations, defining a user-selected behavior control zone can include defining a particular behavior to be performed by the robot 100 or defining a behavior to be performed by another autonomous mobile robot operating in the environment. In implementations where only the robot 100 operates in the environment, the user can select which behavior the robot 100 performs in response to encountering or entering the user-selected behavior control zone. For example, the robot 100 can perform a movement behavior or an intensive clean behavior. In implementations where multiple autonomous mobile robots operate in the environment, the user can select different behaviors to be performed by different autonomous mobile robots, or can select that one or more of the autonomous mobile robots do not change behavior in response to encountering or entering the behavior control zone. In some examples, a first one of the autonomous mobile robots performs an intensive clean behavior in the behavior control zone, while a second one of the autonomous mobile robots performs a movement behavior to avoid the behavior control zone.

[0141] In some implementations, defining the user-selected behavioral control zone can include defining a schedule for the behavioral control zone. The recommended behavioral control zone defined in operation 204 can be defined to be always active for all missions performed by the robot 100. The user may not want the user-selected behavioral control zone to be active for at least some of the missions to be performed by the robot 100. The schedule can indicate one or more missions for which the user-selected behavioral control zone is active or can indicate a period of time for which the user-selected behavioral control zone is active. For example, the user-selected behavioral control zone can be defined to be active only during work hours, during mornings and afternoons, during certain days of the week, or during missions occurring during certain months. Alternatively, the schedule can be context-controlled, such that the user-selected behavioral control zone can be active only when certain conditions are met. For example, a user-selected behavioral control zone may be defined to be active only when no human occupants of the environment are present, when no human occupants are near the location of the behavioral control zone, when no pets are near the location of the behavioral control zone, when the robot 100 has a battery level above a certain threshold, or when another condition related to the robot 100 or the environment is satisfied.

[0142] 8 illustrates a flowchart of an exemplary method for presenting a visual representation of recommended behavioral control zones and user-selected behavioral control zones to a user. A map of the robot 100's environment may be visually represented, and then indicators of recommended behavioral control zones and user-selected behavioral control zones may be overlaid on the map. This method is described with respect to controlling the robot 100 described herein. In other implementations, other types of autonomous mobile robots may be controlled by defining behavioral control zones according to the implementation of the method shown in FIG. 8.

[0143] 8, process 300 includes operations 302 and 304. Process 300 is used to present indicators of recommended and user-selected behavioral control zones and provide a user with a visual representation of the geometric features of the behavioral control zones within the environment of the robot 100.

[0144] In some implementations, before operations 302 and 304 are performed, a notification may be sent to the user computing device 188 to notify the user that a behavioral control zone is recommended. For example, referring to FIG. 9 , a user interface 310 for a user computing device (e.g., user computing device 188) presents a notification 312 indicating that a behavioral control zone is recommended. The notification 312 indicates that the robot 100 has recently been stuck in the same spot due to, for example, an obstacle near the spot detected by an obstacle detection sensor of the robot 100. The user interface 310 further presents a notification 314 indicating that another behavioral control zone is recommended. The notification 314 indicates that the robot 100 has recently detected a lot of debris in the same spot due to, for example, debris near the spot detected by a debris sensor of the robot 100. The user may operate the user interface 310 to initiate definition of the behavioral control zone in response to the notifications 312, 314.

[0145] 8 , in response to a command from a user to initiate definition of a behavioral control zone, the user interface may present a visual representation of the environment to assist in defining the behavioral control zone. In operation 302, a map of the environment and a first indicator of a recommended behavioral control zone are presented. For example, with reference to FIG. 10A , a map 316 and a first indicator 318 are visually presented to the user on a user interface 310 of a user computing device. The visual presentation of the map 316 and the first indicator 318 may allow the user to visualize where the recommended behavioral control zone will be located within the environment.

[0146] The map 316 may be a visual representation of a floor plan of an environment (e.g., the environment shown in FIG. 1 ). The map 316 may be generated based on mapping data collected by the robot 100 as it moves around the environment. The recommended behavior control zone (indicated by the first indicator 318) may be generated based on sensor data collected by the robot 100 (shown in FIG. 1 ). For example, the recommended behavior control zone may be generated using the process 200 (e.g., operations 202 and 204) described herein. The first indicator 318 may be overlaid on the map to indicate the location of the recommended behavior control zone in the environment. Moreover, the first indicator 318 may indicate geometric characteristics of the recommended behavior control zone (e.g., the perimeter, shape, or one or more dimensions of the recommended behavior control zone). The first indicator 318 may also be positioned relative to the map 316 to indicate the location of the recommended behavior control zone in the environment.

[0147] In some implementations, information about the geometric characteristics of the first indicator 318 is also presented on the user interface 310. For example, dimensions 330a, 330b are presented on the user interface 310 indicating the width and length of the recommended behavior control zone. In some implementations, other geometric characteristics may be shown. For example, the perimeter, side length, angle between sides, area, or other geometric measurements of the recommended behavior control zone may be presented on the user interface 310. In addition, the first indicator 318 indicates that the recommended behavior control zone is rectangular. In other implementations, the recommended behavior control zone can have other shapes (including polygonal, circular, triangular, or other shapes).

[0148] In operation 304, a second indicator of the user-selected behavioral control zone is presented on a user interface of the user computing device. For example, with reference to FIG. 10B , a map 316 and a second indicator 320 of the user-selected behavioral control zone are presented on the user interface 310. The second indicator 320 may be overlaid on the map 316.

[0149] Additionally, the second indicator 320 may indicate geometric characteristics of the user-selected behavioral control zone (e.g., the perimeter, shape, or one or more dimensions of the user-selected behavioral control zone), and is positioned relative to the map 316 to indicate the location of the user-selected behavioral control zone in the environment.

[0150] In some implementations, information about the geometric characteristics of the second indicator 320 is also presented on the user interface 310. For example, dimensions 332a, 332b are presented on the user interface 310 to indicate the width and length of the recommended behavior control zone. In some implementations, other geometric characteristics may be indicated. For example, the perimeter, side length, angle between sides, area, or other geometric measurements of the recommended behavior control zone may be presented on the user interface 310. In addition, the second indicator 320 indicates that the recommended behavior control zone is rectangular. In other implementations, the recommended behavior control zone can have other shapes (including polygonal, circular, triangular, or other shapes).

[0151] The second indicator 320 of the user-selected behavioral control zone is presented based on the recommended behavioral control zone represented by the first indicator 318 in FIG. 10A and the user-selected modification of the recommended behavioral control zone. Thus, the second indicator 320 represents the user selection of the behavioral control zone based on the recommended behavioral control zone. Referring to FIG. 10A , a user can interact with the user interface 310 to adjust the recommended behavioral control zone represented by the first indicator 318. For example, the user can operate a user input device (e.g., a touchscreen, mouse, trackpad, or other user input device) to make a user-selected modification of the shape, size, length, width, or other geometric characteristic of the recommended behavioral control zone. In the example shown in FIG. 10A , if the user interface 310 includes a touchscreen, the user can touch a corner 319 of the first indicator 318 and drag it in a downward direction 321 to resize the recommended behavioral control zone. Such resizing creates the user-selected behavioral control zone represented by the second indicator 320.

[0152] As a user makes changes to the recommended behavioral control zone, a second indicator 320 shown in FIG. 10B can indicate the changes relative to the first indicator 318 shown in FIG. 10A, thus providing a means of comparison between the recommended behavioral control zone and the user-selected behavioral control zone. In the example shown in FIG. 10B, the second indicator 320 includes a first portion 322 and a second portion 324. The first portion 322 indicates the recommended behavioral control zone and has geometric characteristics corresponding to the geometric characteristics of the first indicator 318 shown in FIG. 10A. The second portion 324 indicates the user-selected modification of the recommended behavioral control zone and thus represents the difference between the recommended behavioral control zone and the user-selected behavioral control zone.

[0153] The first and second portions 322, 324 of the second indicator 320 may be distinguished from one another through various visual features presented on the user interface 310. In the example shown in FIG. 10B , the first portion 322 has a first shading style and the second portion 324 has a second shading style that is different from the first shading style. In some implementations, the first portion 322 and the second portion 324 have distinct colors. In some implementations, rather than showing the first and second portions 322, 324 of the second indicator 320 to indicate modification of the recommended behavioral control zone, the second indicator 320 is overlaid on the first indicator 318. The second indicator 320 may be a transparent layer, allowing the first indicator 318 to be visible through the second indicator 320. Thus, the user can see both the first indicator 318 and the second indicator 320, and by viewing both the first indicator 318 and the second indicator 320 simultaneously, the user can visually compare the recommended behavioral control zone and the user-selected behavioral control zone.

[0154] In further implementations, a user can interact with the user interface 310 in other ways to define a behavioral control zone. Referring to FIG. 10C , in some implementations, the user interface 310 presents a map 334 of the environment, which is generated, for example, based on mapping data collected by the robot 100 as it moves around the environment. The map 334 can be a visual representation of a floor plan of the environment. The map 334 can include room indicators that indicate rooms in the environment and object indicators that indicate objects detected in the environment. In the example shown in FIG. 10C , indicator 336 is an object indicator that indicates a couch detected in the environment, and indicator 338 is an object indicator that indicates a table detected in the environment. A user can select indicator 336 or indicator 338 to define a behavioral control zone in the environment. For example, referring to FIG. 10D , after a user selects indicator 336, the user interface 310 can present a representation of a portion 339 of the map 334 that includes indicator 336. The user can then select the type of behavioral control zone to define to correspond to the couch represented by indicator 336. For example, the user can invoke indicator 340 to define a keep-out zone or indicator 342 to define a clean zone.

[0155] 11-12, 13A-13K, and 14A-14F illustrate exemplary methods for defining behavioral control zones and associating priorities with these behavioral control zones. FIG. 11 illustrates a flowchart of an exemplary method for defining behavioral control zones and associating priorities with the behavioral control zones. Referring to FIG. 11, process 350 includes operations 352, 354, and 356. Process 350 is used to define behavioral control zones and then associate priorities with the behavioral control zones. A map of the environment may be constructed based on mapping data collected by robot 100 as it moves through the environment. The behavioral control zones may be defined according to methods described in this disclosure, specifically, according to methods described in connection with FIGS. 5, 6A-6B, 7-9, and 10A-10D. Priorities may be associated with behavioral control zones such that robot 100 prioritizes visiting the behavioral control zones during cleaning missions.

[0156] In operation 352, mapping data collected by the robot 100 as it moves around an environment is received. The mapping data may be received by a remote computing device, such as, for example, a user computing device 188 (shown in FIG. 4), a remote computing system 192 (shown in FIG. 4), the robot's 100's controller 109 (shown in FIG. 3A), or another computing device. The mapping data may be used to build a map for the robot 100 and indicate traversable and non-traversable locations in the environment. The mapping data may also be used to present a representation of the map of the environment, thus allowing the user to identify areas that the robot 100 can and cannot traverse. As described in this disclosure, mapping data may be collected by the robot's 100 sensor systems as the robot 100 navigates around an environment. The robot 100 may collect this mapping data as part of the robot's 100 cleaning mission or as part of the robot's 100 training mission.

[0157] In operation 354, a behavioral control zone is defined. The behavioral control zone may correspond to a portion of the mapping data and thus be associated with a location in the environment. The behavioral control zone may also be associated with one or more behaviors that the robot 100 initiates in response to encountering the behavioral control zone. Data indicative of the behavioral control zone may be stored on the robot 100, the remote computing system 192, or some other computing device.

[0158] In operation 356, a priority is associated with the behavioral control zone. The priority indicates the degree to which the robot 100 should prioritize traveling to the behavioral control zone to perform one or more behaviors relative to other portions of the environment and / or relative to other behavioral control zones. Associating a priority with a behavioral control zone causes the robot 100 to travel to the behavioral control zone according to the relative priority of the behavioral control zone, and then, upon arriving at the behavioral control zone, to perform one or more behaviors associated with the behavioral control zone. Associating a priority with a behavioral control zone can include providing a schedule to the robot 100, where the robot 100 will only clean the behavioral control zone and a set of behavioral control zones that includes the behavioral control zone during a scheduled cleaning mission.

[0159] In some implementations, the robot 100 initiates movement to a behavioral control zone at the start of a mission and then initiates an action in response to encountering the behavioral control zone. The action may correspond to a clean action to be performed within the behavioral control zone. The robot 100 may initiate movement to a behavioral control zone when the behavioral control zone is next in a priority sequence for cleaning the behavioral control zone. For example, the priority for the behavioral control zone may be combined with priorities associated with other behavioral control zones defined in the environment to indicate a priority sequence for the behavioral control zone. When the robot 100 is instructed to initiate an operation to clean one or more of the behavioral control zones, the robot 100 may sequentially clean the behavioral control zones based on the priority sequence and, in particular, based on the priorities associated with the behavioral control zones.

[0160] The association of a priority with a behavioral control zone can have different effects on the movement of the robot 100 in different implementations. A priority can be associated with some condition that triggers the robot 100 to initiate movement into a behavioral control zone. In some implementations, a priority can cause the robot 100 to initiate movement into a behavioral control zone in response to a temporal condition, a spatial condition, an environmental condition, or a condition of the robot 100 being satisfied.

[0161] Examples of temporal conditions include the current time being the start of a mission, the end of a mission, the start of a mission scheduled for a particular time, a particular time during a mission, a mission duration, or other time-based conditions that, when satisfied, cause the robot 100 to initiate movement to the behavioral control zone. For example, a priority associated with a behavioral control zone can cause the robot 100 to initiate movement to the behavioral control zone at the start of the mission, at the end of the mission, or at some selected time during the mission. In some implementations, the duration of the mission can be limited. For example, a user can select the mission duration when scheduling the mission, or certain environmental conditions (e.g., a scheduled time during the day when a human occupant is present) can limit the mission duration. If the scheduled duration of the mission is less than a threshold duration, the robot 100 can switch to a priority mode, in which the robot 100 prioritizes moving to a particular behavioral control zone and performing an associated behavior in the behavioral control zone (e.g., cleaning the behavioral control zone).

[0162] Examples of spatial conditions include the location of robot 100 being within a particular region of the environment, being within a particular room of the environment, being within a particular distance from a behavioral control zone, being within a particular distance of a particular feature in the environment, or any other location that causes robot 100 to initiate movement into the behavioral control zone. For example, a priority associated with a behavioral control zone may cause robot 100 to initiate movement into the behavioral control zone in response to entering a particular region (e.g., a boundary between rooms, a particular distance from the behavioral control zone, a room containing the behavioral control zone, or other region of the environment).

[0163] Examples of environmental conditions may include the robot 100 detecting a particular condition in the environment (e.g., the absence of a human occupant in the environment, the absence of a human occupant in a particular area of ​​the environment, a door being closed or open, a human occupant returning to the environment, or some other environmental condition). For example, the robot 100 may initiate movement to clean a behavioral control zone corresponding to an entrance passage in the environment in response to the human occupant returning to the environment, because the return of the human occupant may potentially be associated with introducing debris into the environment. Alternatively, the robot 100 may initiate movement to a behavioral control zone in response to the absence of a human occupant in the environment, such that the robot 100 reduces the amount of noise it makes while the human occupant is present in the environment.

[0164] Examples of robot conditions include a system of the robot 100 being in a particular condition. For example, the robot 100 may initiate movement to a behavioral control zone in response to having a particular level of battery charge, a particular remaining volume in its debris bin (in an example where the robot 100 is a robotic vacuum cleaner), a particular amount of fluid in its fluid reservoir (in an example where the robot 100 is a robotic mop), or other condition of the robot 100. The low battery status of the robot 100 may be triggered at different battery level thresholds (e.g., a low battery level threshold between 5% and 25%, between 10% and 20%, or other suitable value) depending on the implementation.

[0165] In some implementations, the priority is a variable priority that can change depending on an event (e.g., time of day, time of year, weather event, or any event that causes the behavioral control zone to be prioritized). For example, a behavioral control zone with a variable priority may be prioritized during certain times of day or certain times of year and not prioritized during other times of day or other times of year. In an example where the variable priority changes depending on time of day, the priority may be defined such that the behavioral control zone is prioritized only during the morning and afternoon (e.g., times when a human occupant is not present in the environment). The behavioral control zone may be in an area of ​​the environment where a human occupant is typically located when the human occupant is present in the environment (e.g., the living room or kitchen), and the variable priority may cause the robot 100 to spend less time in that area so that noise from the robot 100 does not disturb the human occupant. Alternatively, the behavioral control zone can be in an area that receives frequent traffic from human occupants (e.g., a hallway in an office building), and the variable priority can cause the robot 100 to prioritize visiting the behavioral control zone during times of day when human occupants would typically be present.

[0166] In examples where the variable priority varies depending on the time of year, the priority may be defined such that a behavioral control zone is prioritized only during certain months of the year or during certain seasons of the year. A behavioral control zone may be in an area that receives relatively more debris during certain months or seasons (e.g., winter) and may be defined such that it is prioritized during certain months or seasons. Alternatively, the variable priority may vary based on weather events. The priority may change as a function of a current or recent weather event. For example, during or after rainy or snowy weather, human occupants may be more likely to introduce debris into an entrance passageway of an environment. A behavioral control zone may be prioritized during or after such a weather event for a predetermined period of time (e.g., during the weather event and for 12 to 72 hours after the weather event).

[0167] 12, a process 400 is shown for providing recommended behavioral control zones and recommended priorities, for defining user-selected behavioral control zones, associating the user-selected behavioral control zones with user-selected priorities, and for controlling the robot 100 based on the user-selected behavioral control zones and the user-selected priorities. The process 400 includes operations 402, 404, 406, 408, 410, 412, 414, 416, 418, 420, and 422.

[0168] Operations 402 and 404 include operations of the robot 100 as the robot 100 performs a cleaning or training mission and operates in an environment. In operation 402, the robot 100 begins operating in the environment. In operation 404, the robot 100 collects sensor data and generates mapping data of the environment as the robot 100 operates in the environment in operation 402. The mapping data may be generated based on the sensor data. The mapping data may indicate the sensor data and location data associated with the sensor data. As the robot 100 operates in the environment, the robot 100 may clean a floor surface if operations 402 and 404 occur as part of a cleaning mission. If operations 402 and 404 occur as part of a training mission, the robot 100 may move around a floor surface without cleaning.

[0169] Operations 406, 408, and 410 include operations for generating recommended behavioral control zones and recommended priorities for the recommended behavioral control zones, and for presenting these recommendations to a user. Operations 406 and 408 are performed by a computing system 401, which can be a controller located on the robot 100, a controller located on the user computing device 188, a remote computing system (e.g., remote computing system 192), a distributed computing system including processors located on multiple devices (e.g., robot 100, user computing device 188, or remote computing system 192), a processor on an autonomous mobile robot in addition to the robot 100, or a combination of these computing devices. In operation 406, the mapping data is used to identify a subset of sensor events for generating the recommended behavioral control zones and for generating the recommended priorities. In operation 408, data indicative of the recommended behavioral control and data indicative of the recommended priorities are generated and provided to the user computing device 188. Then, in operation 410, an indicator of the recommended behavioral control zone and an indicator of the recommended priority are presented to the user 30, for example, through the user computing device 188.

[0170] To generate the recommended behavioral control zones, operations 406 and 408 may include features described with respect to operation 204 of process 200 illustrated in FIG. 5. Considerations for generating the recommended priorities may vary in implementation. In some implementations, the recommended priorities are associated with the behavioral control zones based on sensor data collected by robot 100, for example, during operation 402.

[0171] The sensor data on which the recommendation priorities are based may indicate debris collected or located within an area corresponding to the recommended behavioral control zone. For example, the debris may be detected using, for example, debris detection sensor 147 (shown in FIG. 2 ) as robot 100 ingests the debris or moves near the debris. The sensor data may indicate a characteristic of the debris. For example, the characteristic may be the amount of debris (e.g., the amount of debris normalized by the area of ​​the recommended behavioral control zone), the type of debris (e.g., filament debris, particulate debris, granular debris, dirt debris), the size of the debris, the shape of the debris, or other characteristic of the debris detected by robot 100.

[0172] The sensor data on which the recommendation priorities are based can indicate objects proximate to or within the behavioral control zone. The objects can be associated with debris. For example, occupants (e.g., pets and humans) in the environment can drop debris near the objects or introduce debris into areas near the objects. Also, air currents in the environment and movement of occupants can cause debris to accumulate in particular areas of the environment.

[0173] The type of object can vary in implementations, and the recommendation priority can be selected based on the type of object. In some implementations, the edge of the object can represent a portion of the perimeter of the behavior control zone. For example, the object can be a wall, a corner, a counter, a kitchen counter, a doorway, furniture, or other object having an edge along a floor surface where debris can accumulate. In some implementations, the object can be an object with a portion spaced apart from the floor surface. For example, the object can be a table, a chair, a couch, a desk, a bed, or other object under which debris can accumulate. In some implementations, the object can be an object on a floor surface traversable by the robot 100. For example, the object can be an area rug or other similar object. In some implementations, the object can be an object associated with an occupant who introduces debris onto the floor surface. For example, the object can be a door, an entrance passageway, a boundary between rooms, a window, or other similar object.

[0174] As discussed with respect to operation 356 (shown in FIG. 11 ), the priority may cause the robot 100 to initiate movement to the behavioral control zone in response to a particular condition being satisfied, which may be a temporal condition, a spatial condition, an environmental condition, or a condition of the robot 100. For example, if the condition is a temporal condition, the recommended priority for the behavioral control zone may correspond to, for example, a recommendation for a scheduled time for the robot 100 to initiate movement from the docking station 50 to the behavioral control zone. If the condition is a spatial condition, the recommended priority may correspond to, for example, a recommendation for defining a room in the environment that triggers the robot 100 to initiate movement to the behavioral control zone. If the condition is an environmental condition, the recommended priority may correspond to, for example, a recommendation for the robot 100 to begin a mission when the robot 100 determines that a human occupant has left the environment and that the robot 100 initiates movement to the behavioral control zone at the start of this mission. If the condition is a robot condition, the recommendation priority may correspond, for example, to a recommendation for defining a battery level (e.g., between 5% and 25% of full capacity) at which the robot 100 will begin moving to the behavior control zone.

[0175] To present the recommended behavioral control zones and indicators of the recommended prioritization levels to be associated with the recommended behavioral control zones, operation 410 can provide such indicators in a number of ways. Operation 410 can be similar to operation 302 described with respect to FIG. 8 for presenting indicators of the recommended behavioral control zones. FIGS. 13A and 13B provide further examples of user interfaces 310 for presenting recommendations to a user.

[0176] Referring to FIG. 13A , a user interface 310 for a user computing device (e.g., user computing device 188) presents a notification 430 indicating that a behavioral control zone 432 is recommended. The notification 430 may include an indicator 434 of a particular robot operating in the environment to perform a particular behavior in the behavioral control zone 432. For example, the notification 430 here recommends that a robotic mop clean the area corresponding to the behavioral control zone 432. The recommendation priority here may be associated with a time condition. The user interface 310 presents a recommendation 436 to add a scheduled time for cleaning the behavioral control zone 432. At this scheduled time, the behavioral control zone 432 is associated with a priority such that the robotic mop prioritizes cleaning the behavioral control zone 432 during the scheduled time. As discussed in this disclosure, the user 30 can operate the user interface 310 to accept the recommendation, modify the recommendation, or reject the recommendation.

[0177] In some implementations, multiple robot cleaners operate in the environment (including a robot mop and a robot vacuum cleaner), and the notification 430 can recommend that another robot (e.g., a robot vacuum cleaner) operating in the environment perform another behavior in the same behavior control zone 432. For example, the recommendation can include a recommendation for a series of behaviors to be performed by different robots in the same behavior control zone 432. The recommendation can include a recommendation for the robot vacuum cleaner to perform a clean behavior in the behavior control zone 432, and a recommendation for the robot mop to perform a clean behavior in the behavior control zone 432 after the robot vacuum cleaner has performed a clean behavior in the behavior control zone 432. If the behavior control zone 432 corresponds to an area near an entrance passageway, the robot vacuum cleaner can vacuum up debris brought into the area, and then the robot mop can mop the area for any dried muddy soil and other debris that the robot vacuum cleaner may have missed.

[0178] In some implementations, the recommendations may include a recommendation for one of the robots to perform a behavior and a recommendation for one of the robots to avoid a behavior control zone 432. The behavior control zone 432 serves as a clean zone for one of the robots and a keep-out zone for the other of the robots. The behavior control zone 432 may correspond, for example, to a carpeted surface near an entrance hallway where an occupant may introduce debris into the environment. The behavior control zone 432 may serve as a keep-out zone for a robot mop and a clean zone for a robot vacuum cleaner.

[0179] FIG. 13B presents another example of a recommendation indicator presented on the user interface 310. The user interface 310 presents a notification 440 including a recommendation to define a behavioral control zone 442 around a dining table in a dining room 444. If the behavioral control zone 442 is added to a list of behavioral control zones for the robot, the behavioral control zone 442 may be automatically added to a priority list for the robot. For example, if a scheduled time for cleaning the behavioral control zone defined for the robot has already been established, the behavioral control zone 442 may be automatically added to the sequence of behavioral control zones to be cleaned at the scheduled time if accepted by the user 30. As discussed in this disclosure, the user 30 can operate the user interface 310 to accept the recommendation, modify the recommendation, or reject the recommendation.

[0180] Acts 412 and 414 include acts for user 30 to select a behavioral control zone and a priority associated with the behavioral control zone. At act 412, user 30 provides an input indicating the user-selected behavioral control zone and an input indicating the user-selected priority. At act 414, user computing device 188 presents an indicator of the user-selected behavioral control zone.

[0181] The user inputs at acts 412 and 414 can vary depending on the implementation. With respect to the user selection of the behavioral control zone, the user 30 can accept or modify the recommended behavioral control zone generated in act 408. For example, the user 30 can provide the user selection by accepting the recommended behavioral control zone and the recommended priority, e.g., by accepting the recommendations discussed with respect to Figures 13A-13B. Alternatively, the user 30 can operate the user computing device 188 in the manner described with respect to Figures 9A and 9B to provide the user-selected modification of the recommended behavioral control zone.

[0182] In instances where user 30 accepts a recommended behavioral control zone, the indicator of the user-selected behavioral control zone can be the same as or similar to the indicator of the recommended behavioral control zone as discussed with respect to operation 410. As discussed with respect to Figures 10A-10D, user 30 can modify the recommended behavioral control zone by redefining the perimeter of the recommended behavioral control zone to arrive at the user-selected behavioral control zone. Thus, the examples of Figures 10A-10D can be examples of operation 410 (in which an indicator of the recommended behavioral control zone is presented) and operation 414 (in which an indicator of the user-selected behavioral control zone is presented) and can reflect the user input provided in operation 412.

[0183] The user 30 can further provide user-selected modifications of the recommended priorities. For example, the user 30 can select different conditions (e.g., one of the temporal, spatial, environmental, or robot conditions described in this disclosure) to be associated with the priorities. The user 30 can modify the temporal conditions by scheduling different times for the robot 100 to initiate movement into the behavioral control zone. The user 30 can modify the spatial conditions by setting different areas in the environment that will initiate movement into the behavioral control zone when the robot 100 enters the area. The user 30 can modify the environmental conditions by setting different states of objects (e.g., doors) in the environment that will trigger the robot 100 to initiate movement into the behavioral control zone when detected by the robot 100. The user 30 can modify the robot conditions by setting different charge levels for the robot 100's battery that will trigger the robot 100 to initiate movement into the behavioral control zone. If other behavioral control zones have already been established, user 30 can modify the relative priority of the behavioral control zone (e.g., priority relative to the priority of other behavioral control zones). User 30 can further adjust the sequence in which the behavioral control zones are traversed.

[0184] In some implementations, rather than presenting indicators of recommended behavioral control zones and priorities as described with respect to operation 410, the user interface 310 presents a representation of a map of the environment, and the user 30 can interact with the user interface 310 to select a behavioral control zone without based on selecting a behavioral control zone from the recommended behavioral control zones. Additionally, the user 30 can interact with the user interface 310 to select priorities to associate with the user-selected behavioral control zone without based on selecting a behavioral control zone from the recommended priorities. FIGS. 13C-13K illustrate examples of the user interface 310 during a process facilitated by the user 30 to select a behavioral control zone and to select priorities to associate with the behavioral control zone. In these examples, recommended behavioral control zones and recommended priorities are not provided to the user 30.

[0185] Referring to FIG. 13C , the user interface 310 presents a map 450 of the environment. The map 450 can be labeled with the names of different rooms in the environment, allowing the user 30 to easily identify the orientation of the map 450. A first behavioral control zone indicator 452 and a label 453 for the first behavioral control zone are presented. This first behavioral control zone was previously established in a space in the environment identified as a living room, for example, using the processes described in this disclosure. The label 453 is “couch.” The indicator 454 represents this space. In the example presented in FIG. 13C , the first behavioral control zone was previously established as being associated with a couch in the environment. The visual representation on the user interface 310 allows the user 30 to define the behavioral control zone by visual reference to features in the environment (e.g., rooms, objects, and previously established behavioral control zones). The user input device of the user computing device may be a touchscreen, and the user interface 310 may present user input elements 456 that may be invoked by the user 30 (e.g., by touch) to enable the user 30 to define a behavioral control zone.

[0186] In response to invocation of user input element 456, the user computing device may be operated to enable user 30 to define a second behavioral control zone. As shown in FIG. 13D, user 30 may define a second behavioral control zone corresponding to an area in a room in the environment identified as a dining room. Indicator 458 represents the second behavioral control zone, and indicator 460 represents the dining room. Indicator 454 and indicator 458 are examples of indicators of user-selected behavioral control zones that would be presented during the exemplary process at operation 418.

[0187] Referring to FIG. 13E, user 30 can provide a label for the second behavioral control zone. User interface 310 provides user input element 462, which allows user 30 to provide a name for the second behavioral control zone that appears as a label for the second behavioral control zone on map 450 (shown in FIG. 13D). Then, referring to FIG. 13F, user 30 can identify a type for the second behavioral control zone. The type of behavioral control zone can be, for example, an appliance, a built-in home feature, an area for children, flooring, furniture, an area for pets, a seasonal area, or other area. Other behavioral control zone types are also possible, such as a garbage disposal area, a window, an entryway, or other types of areas in an environment. In some implementations, user 30 can further define subtypes of the behavioral control zone. For example, if the type of behavioral control zone is an appliance, selectable subtypes can include a microwave, a toaster, a dishwasher, a washing machine, a dryer, or other suitable appliances. Or, if the type of a behavioral control zone is furniture, the subtype may include a particular type of furniture, such as, for example, a couch, coffee table, or other furniture type. The type and / or subtype of a behavioral control zone may be used to associate a priority with the behavioral control zone. For example, the type and / or subtype may include a particular condition (e.g., a temporal condition, a spatial condition, an environmental condition, or a robotic condition as discussed in this disclosure).

[0188] The selection of a type and / or subtype can, in some implementations, automatically cause an association between a second behavioral control zone and a priority. For example, if a scheduled time for cleaning a behavioral control zone is already defined, the second behavioral control zone can be added to the behavioral control zone that is to be cleaned during the scheduled time. Also, the sequence of behavioral control zones can be adjusted so that the robot 100 can efficiently clean each of the behavioral control zones during the scheduled time, e.g., to minimize backtracking.

[0189] In some implementations, user selection of priorities can include user 30 selecting behavioral control zones and then having robot 100 initiate a mission to clean the selected behavioral control zones in an order provided by user 30. For example, as shown in FIG. 13G, user 30 can select a subset of several behavioral control zones 463 in an environment to be cleaned by robot 100. The behavioral control zones 463 include room 463a and, similarly, behavioral control zone 463b, which is defined separately from room 463a. User 30 can operate user interface 310 to select the behavioral control zones 463 to clean and the order in which the behavioral control zones 463 are cleaned. In some implementations, when user 30 selects a subset of behavioral control zones 463, the order in which the behavioral control zones 463 are cleaned (appearing as numbers next to the selected behavioral control zones 463 in the example shown in FIG. 13G) can be automatically selected. User 30 can then manually modify the order in which the selected behavioral control zones are cleaned. The order in which the behavioral control zones are cleaned indicates the relative priority of the selected behavioral control zones. User 30 can then initiate a mission for robot 100, in which robot 100 cleans the selected behavioral control zones in the selected order.

[0190] In some implementations, priorities may be selected for multiple robots (including robot 100) operating in an environment. For example, the multiple robots may include both a robot mop and a robot vacuum cleaner, and referring to FIG. 13H , a user 30 may select a subset of several behavioral control zones 464 in the environment to be cleaned by both the robot mop and the robot vacuum cleaner. The user 30 may select the behavioral control zones 464 in a manner similar to that described with respect to FIG. 13G . The sequence selected for cleaning the behavioral control zones 464 may be the same for both the robot mop and the robot vacuum cleaner. In some implementations, a user 30 may define different sequences for the robot mop and the robot vacuum cleaner, such that in a first sequence, the robot mop cleans the selected behavioral control zones, and in a second sequence, the robot vacuum cleaner cleans the selected behavioral control zones. In the example shown in FIG. 13H, when the user 30 invokes the user input element 466 to initiate a mission, the robotic vacuum cleaner cleans the selected behavioral control zones in a selected sequence, and then the robotic mop cleans the selected behavioral control zones in a selected sequence.

[0191] 13I-13K, scheduled times for the robot 100 to initiate a mission may also be defined. Referring to FIGS. 13I-13J, the user interface 310 may present a user input element 468 for selecting a time for the mission to begin and a user input element 470 for selecting a frequency. The user interface 310 may further present a user input element 472, allowing the user 30 to select between cleaning the entire environment or cleaning some subset of the behavioral control zones defined in the environment. In the example shown in FIGS. 13I-13J, the user 30 selects a time of 9:00 AM, twice a week on Tuesdays and Thursdays, where the robot 100 will clean the kitchen, living room, hallway, and couch, in that order. Referring to FIG. 13K, two scheduled times 474, 476 are defined. At scheduled time 474, robot 100 initiates a mission to clean a first set of behavioral control zones (including behavioral control zones associated with the kitchen, living room, hallway, and couch). At scheduled time 476, robot 100 initiates a mission to clean a second set of behavioral control zones (including behavioral control zones associated with the bedroom, bathroom, and hallway).

[0192] 12 , operations 416 and 418 include operations for establishing user-selected behavioral control zones and their priorities so that the behavioral control zones and priorities may be used to control robot 100. In operation 416, the user-selected behavioral control zones are defined by computing system 401. Operation 416 is similar to operation 206 as described with respect to FIG. 5 . In operation 418, the user-selected behavioral control zones are associated with user-selected priorities. Operations 416 and 418 can occur in response to the user selection provided in operation 412 or in response to confirmation by user 30 of the user selection provided in operation 412.

[0193] Operations 410, 412, 414, 416, and 418 are described herein as including user selection of a behavioral control zone based on the recommended behavioral control zone. In some implementations, the behavioral control zone is defined without any user intervention. The behavioral control zone for controlling the robot 100 is automatically generated based on the recommended behavioral control zone without the user 30 having to provide a modification to the recommended behavioral control zone. The recommended behavioral control zone provided in operation 408 may correspond to the behavioral control zone defined in operation 416. In some implementations, the user 30 merely accepts the recommended behavioral control zone and defines the behavioral control zone. In other implementations, the user 30 does not have to accept the recommended behavioral control zone so that the recommended behavioral control zone is defined. The recommended behavioral control zone is defined once a subset of sensor events is identified. The mobile device 188 does not request input from the user 30 to modify the recommended behavioral control zone, and the user 30 does not provide input to modify the recommended behavioral control zone (e.g., in operation 412). The mobile device 188 may present an indicator of the recommended behavioral control zone and may indicate that the recommended behavioral control zone is defined as a behavioral control zone for controlling the robot 100.

[0194] Operations 420, 422, and 424 include operations for moving the robot 100 to a behavioral control zone based on a priority and for initiating a behavior upon the robot 100 arriving at the behavioral control zone. In operation 420, the robot 100 initiates movement to a behavioral control zone based on a priority associated with the behavioral control zone. In operation 422, the computing system 401 determines that the robot 100 is proximate to or within a user-selected behavioral control zone. Then, in operation 424, the robot 100 initiates a behavior associated with the user-selected behavioral control zone.

[0195] As discussed in this disclosure, multiple behavioral control zones may be defined, and each of these multiple behavioral control zones may be associated with a different relative priority. A behavioral control zone and associated priority defined in process 400 (e.g., in acts 416 and 418) may be one of multiple behavioral control zones that control the operation of robot 100 in acts 420, 422, and 424. Robot 100 may initiate movement into a behavioral control zone before or after other behavioral control zones, depending on the relative priority of the behavioral control zone and whether other behavioral control zones are selected for robot 100 to travel to during a mission in which robot 100 will visit the behavioral control zone. For example, in an example in which robot 100 performs a mission to perform behaviors in a first behavioral control zone associated with a first priority and in a second behavioral control zone associated with a second priority, if the first priority is higher than the second priority, robot 100 will initiate movement into the first behavioral control zone before initiating movement into the second behavioral control zone.

[0196] Moreover, as discussed in this disclosure, the conditions that trigger the robot 100 to initiate movement into the behavioral control zone can vary in implementation. For example, in some implementations, the robot 100 initiates movement into the behavioral control zone at operation 420 in response to a condition (e.g., a temporal condition, a spatial condition, an environmental condition, or a robot condition) being satisfied.

[0197] In some implementations, if a behavioral control zone defined in process 400 is a clean zone, the robot 100 may perform a clean behavior in the behavioral control zone that is consistent with the clean behavior performed during the coverage behavior. In this regard, the robot 100 does not change its movement speed, vacuum power, movement pattern, or other cleaning parameters when performing the clean behavior in the behavioral control zone. In some implementations, the behavioral control zone is associated with an intensive clean behavior, in which the robot 100 changes its movement speed, vacuum power, movement pattern, or other cleaning parameters when performing the clean behavior in the behavioral control zone. For example, the intensive clean behavior may cause the robot 100 to cover the behavioral control zone more than once, increase the vacuum power of the autonomous cleaning robot, or decrease the movement speed of the autonomous cleaning robot.

[0198] 14A-14F show examples of robot 100 moving through an environment and cleaning the environment according to behavioral control zones and their associated priorities. In these examples, the environment is a room, but the systems and processes described with respect to these examples are applicable to implementations in which robot 100 operates in an environment containing multiple rooms. The behavior described with respect to the behavioral control zones shown in FIGS. 14A-14F is a clean behavior, but in other implementations, other behaviors may be performed in one or more of the behavioral control zones.

[0199] 14A , behavioral control zones 480a, 480b, 480c, 480d, 480e, and 480f (collectively referred to as behavioral control zones 480) are defined, for example, using the example process 400. Behavioral control zone 480b may be associated with an entrance hallway rug 481. Behavioral control zone 480c may be associated with a kitchen surface 482. Behavioral control zone 480d may be associated with a dining room area 483. And behavioral control zones 480a, 480e, and 480f may be associated with a room corner portion 484. In FIG. 14A , the robot 100 is shown docked at the docking station 50. The behavioral control zones 480 may each have a different associated priority, such that the robot 100 prioritizes one or more of the behavioral control zones 480 over the other behavioral control zones 480. 14A, in an implementation where behavioral control zone 480 is a clean zone, robot 100 may prioritize cleaning behavioral control zone 480a, then behavioral control zone 480b, then behavioral control zone 480c, then behavioral control zone 480d, then behavioral control zone 480e, and then behavioral control zone 480f. In a time-constrained mission, robot 100 may prioritize cleaning behavioral control zone 480a over other behavioral control zones.

[0200] 14B-14F illustrate further examples in which priorities associated with behavioral control zones 480 control the navigation of the robot 100. One or more behavioral control zones 480 may be associated with priorities responsive to temporal conditions. For example, referring to FIG. 14B, behavioral control zone 480b associated with entrance passage lug 481 may be associated with a temporal condition that causes the robot 100 to begin moving into behavioral control zone 480b at the start of a mission. The mission may be a scheduled mission or may be a mission manually initiated by user 30. The priority of behavioral control zone 480b may be defined such that when robot 100 begins a mission originating from docking station 50, robot 100 first moves into behavioral control zone 480b and performs a clean behavior in behavioral control zone 480b. For example, robot 100 moves along a series of parallel rows in behavioral control zone 480b and performs a clean behavior. After performing the clean behavior, the robot 100 can proceed to perform a coverage behavior to clean the remainder of the environment. Alternatively, the mission may be a scheduled mission and the priority of the behavior control zone 480b may be defined such that the robot 100 cleans the behavior control zone 480b and then returns to the docking station 50.

[0201] 14C , behavioral control zones 480 may be associated with a temporal condition that causes robot 100 to sequentially initiate movement to each of behavioral control zones 480a-480f in a mission and perform a clean behavior in each of behavioral control zones 480a-480f. For example, user 30 may schedule a mission at a specific time to clean a selected set of behavioral control zones (i.e., behavioral control zones 480a-480f). At the scheduled time, robot 100 leaves docking station 50 and then initiates movement to behavioral control zone 480a. After performing the clean behavior in behavioral control zone 480a, robot 100 initiates movement to behavioral control zone 480b and then performs a clean behavior in behavioral control zone 480b. After performing the clean behavior in behavioral control zone 480b, the robot 100 starts moving to behavioral control zone 480c and then performs the clean behavior in behavioral control zone 480c. After performing the clean behavior in behavioral control zone 480c, the robot 100 starts moving to behavioral control zone 480d and then performs the clean behavior in behavioral control zone 480d. After performing the clean behavior in behavioral control zone 480d, the robot 100 starts moving to behavioral control zone 480e and then performs the clean behavior in behavioral control zone 480e. After performing the clean behavior in behavioral control zone 480e, the robot 100 starts moving to behavioral control zone 480f and then performs the clean behavior in behavioral control zone 480f. After performing the clean behavior in behavioral control zone 480f, the robot 100 starts moving back to the docking station 50. Thus, the priorities associated with behavioral control zones 480 in this example result in robot 100 initiating movement into behavioral control zones 480 during scheduled missions and in a sequence based on relative priority.

[0202] One or more of the behavioral control zones 480 may be associated with a priority responsive to a spatial condition. For example, referring to FIG. 14D , behavioral control zone 480b may be associated with a spatial condition that causes robot 100 to initiate movement to behavioral control zone 480b in response to being in entrance region 485a. For example, as robot 100 moves around an environment and generates mapping data for constructing a map, regions (e.g., rooms or smaller regions) may be identified. In an environment with multiple rooms, the regions may be rooms (e.g., an entrance room, a kitchen room, or a dining room). In the example shown in FIG. 14D , the regions may include entrance region 485a, kitchen region 485b, and dining region 485c. The priority associated with entrance region 485a is selected such that robot 100 initiates movement to behavioral control zone 480b in response to being in entrance region 485a. The robot 100 then performs the behavior when the robot 100 encounters the behavior control zone 480b.

[0203] One or more of the behavioral control zones 480 may be associated with priorities responsive to environmental conditions. Referring to FIG. 14E , behavioral control zone 480b may be associated with environmental conditions that cause robot 100 to initiate movement to behavioral control zone 480b in response to a human occupant 486 entering the environment. Robot 100 may receive data indicating human occupant 486 entering the environment. For example, a user computing device carried by human occupant 486 may generate location data indicating the location of the user computing device and, based on the location data, may transmit data indicating human occupant 486 entering the environment. Thus, the priorities responsive to environmental conditions for behavioral control zone 480b may enable robot 100 to clean debris that human occupant 486 may have introduced into the environment when human occupant 486 enters the environment.

[0204] One or more of the behavioral control zones 480 may be associated with a priority in response to a robot condition. With reference to FIG. 14F , for example, behavioral control zone 480b may be associated with a robot condition that, in response to a low battery status of the robot 100, causes the robot 100 to initiate movement to behavioral control zone 480a. For example, a low battery status may occur when the battery level falls below a battery level threshold (e.g., between 5% and 25%, between 10% and 20%, or other suitable value). In the example shown in FIG. 14F , a low battery status is triggered when the robot 100 is at location 487. When the low battery status is triggered, the robot 100 initiates movement to behavioral control zone 480a and then performs a clean behavior in behavioral control zone 480a. After performing the clean behavior in behavioral control zone 480a, the robot 100 returns to the docking station 50 for recharging. In some implementations, rather than a low battery status triggering the robot 100 to initiate movement to the behavioral control zone 480a, a nearly full status with respect to the debris bin of the robot 100 can trigger the robot 100 to initiate movement to the behavioral control zone 480a. For example, if the debris level in the debris bin is greater than a threshold level (e.g., at least 70% to 90% of the bin capacity), the robot 100 can initiate movement to the behavioral control zone 480a and then perform a clean behavior in the behavioral control zone 480a. The robot 100 can then return to the docking station 50 and allow the docking station 50 to evacuate the debris from the robot 100 into the debris chamber of the docking station 50.

[0205] 15-16, 17A-17B, and 18A-18C illustrate exemplary methods for defining behavioral control zones to cause an autonomous mobile robot (e.g., robot 100) to disable behaviors when the robot crosses the behavioral control zone. In FIG. 15, process 500 includes operations 502 and 504. Process 500 is used to establish areas in an environment where robot 100 will disable certain behaviors that can prevent robot 100 from crossing the area.

[0206] In operation 502, mapping data collected by the robot 100 as it moves about an environment is received. Operation 502 can be similar to operation 352 described with respect to process 350 of FIG.

[0207] In operation 504, a behavioral control zone corresponding to a portion of the mapping data is defined. The behavioral control zone causes the robot 100 to disable a behavior when the robot 100 crosses the behavioral control zone. The robot 100 receives data indicating the behavioral control zone and can then disable a behavior in response to encountering the behavioral control zone based on the data.

[0208] The behavior that is disabled can vary depending on the implementation. In some implementations, the behavior is a clean behavior. For example, if a user desires to establish a quiet zone (where the robot 100 creates less noise in the environment), the behavior control zone can be a zone in which the robot 100 disables the cleaning system and / or the vacuum system 119 (shown in FIG. 3A ) to reduce the noise created by the robot 100. In some implementations, the behavior that is disabled is a lag ride up behavior, which is triggered in response to the robot 100 detecting motion indicative of a surface feature that causes a portion of the robot 100 to move upward, as discussed in this disclosure.

[0209] 15 , there is shown a process 600 for providing suggested behavioral control zones for disabling behaviors of the robot 100, for defining user-selected behavioral control zones, and for controlling the robot 100 so that behaviors are disabled when the robot crosses the user-selected behavioral control zone. Process 600 includes operations 602, 604, 606, 608, 610, 612, 614, 616, 618, and 620.

[0210] Operations 602 and 604 include operations of the robot 100 as the robot 100 performs a cleaning or training mission and operates in an environment. In operation 602, the robot 100 begins operating in the environment. In operation 604, the robot 100 collects sensor data and generates mapping data of the environment as the robot 100 operates in the environment. Operations 602 and 604 can be similar to operations 402 and 404, respectively.

[0211] Acts 606, 608, and 610 include acts for generating a suggested behavioral control zone for overriding a behavior of the robot 100. In act 606, the computing system 401 identifies a subset of sensor events of the robot 100. In act 608, data indicative of the suggested behavioral control is generated and provided to the user computing device 188. In act 610, the user computing device 188 presents an indicator of the suggested behavioral control zone.

[0212] Operation 606 may be similar to operation 202 of process 200 and operation 406 of process 400. Specifically, the set of sensor events may correspond to the set of sensor events described in connection with operation 202 that indicate behaviors that should be disabled to allow robot 100 to traverse a traversable portion of the floor surface. Operation 608 may be similar to operation 204 of process 200 and operation 408 of process 400, except that the suggested behavior control zone is a behavior control zone for disabling a behavior of robot 100 when robot 100 traverses the suggested behavior control zone. Operation 610 may be similar to operation 410.

[0213] Acts 612 and 614 include acts for user 30 to select a behavioral control zone. In act 612, user 30 provides input indicating the user-selected behavioral control zone. In act 614, user computing device 188 presents an indicator of the user-selected behavioral control zone. User 30 can accept the suggested behavioral control zone, modify the suggested behavioral control zone, or amend the suggested behavioral control zone in the manner discussed with respect to act 412, and the user interface can be updated in the manner discussed with respect to act 414.

[0214] A user 30 can operate the user computing device 188 and provide input indicating a user-selected behavioral control zone at operation 612. FIGS. 17A and 17B illustrate an example of a user 30 operating the user computing device 188 in this manner. In the example illustrated in FIGS. 17A and 17B, no suggested behavioral control zones are provided to the user 30. Referring to FIG. 17A, a user interface 310 presents a map 630 of an environment. The user interface 310 provides a visual representation of the floor plan (including representations of rooms and boundaries between rooms). For example, the user interface 310 can present indicators 632a-632g of boundaries between room indicators 634a-634g in the environment. The user interface 310 presents user input elements 636 that the user 30 can invoke to define a user-selected behavioral control zone.

[0215] 17B, ​​after invoking user input element 636, user 30 can operate user interface 310 to select one of boundary indicators 632a-632g (shown in FIG. 17A) to define a behavioral control zone. In the example shown in FIG. 17B, user 30 invokes indicator 632a and defines behavioral control zone 638 along the boundary represented by indicator 632a. As discussed in this disclosure, in response to encountering behavioral control zone 638, robot 100 disables obstacle avoidance behaviors (e.g., lag-ride-up behaviors) as robot 100 crosses behavioral control zone 638, thereby allowing robot 100 to cross behavioral control zone 638 without triggering behaviors that would cause robot 100 to move away from behavioral control zone 638.

[0216] Operation 616 includes defining the user-selected behavioral control zone to enable the user-selected behavioral control zone to be used in a mission (e.g., a current mission, a concurrently initiated mission, or a subsequently initiated mission) by robot 100. In operation 616, the user-selected behavioral control zone is defined by computing system 401. Operation 616 is similar to operation 206 as described with respect to FIG.

[0217] Operations 618 and 620 include operations for initiating a behavior when the robot 100 arrives at a user-selected behavior control zone. In operation 618, the computing system 401 determines that the robot 100 is in proximity to or within the user-selected behavior control zone. In operation 620, the robot 100 disables the behavior when the robot 100 navigates through the user-selected behavior control zone. As discussed with respect to operation 504, the behavior can be a rag-ride-up behavior, a cleaning behavior, or any other suitable behavior of the robot 100.

[0218] 18A-18C illustrate examples of a robot 100 operating according to behavioral control zones configured to trigger the robot 100 to disable a behavior when the robot 100 crosses a behavioral control zone. Referring to FIG. 18A, the robot 100 navigates around an environment including a first room 642, a second room 644, and a hallway 646 between the first room 642 and the second room 644. A first boundary 648 separates the hallway 646 from the first room 642, and a second boundary 650 separates the hallway 646 from the second room 644. FIG. 18A shows the robot 100 performing a coverage behavior, for example, to clean the first room 642. As the robot 100 performs the coverage behavior, the robot 100 initiates a rug ride-up behavior in response to a portion 652 of a rug 651 being ridden up. The robot 100 encounters the ridden-up portion 652 and then initiates a rug-ride-up behavior to avoid the portion 652 of the rug 651. In the rug-ride-up behavior, the robot 100 flips away from the portion 652 of the rug 651 to avoid riding over the portion 652 of the rug 651 and potentially getting stuck.

[0219] 18B shows an example of the robot 100 operating in an environment without a behavioral control zone that crosses the first boundary 648 or the second boundary 650. For example, the robot 100 performs a coverage behavior to clean the first room 642. When the robot 100 performs the coverage behavior, the robot 100 initiates a lag-ride-up behavior in response to encountering the first boundary 648 and reverses away from the first boundary 648. To prevent the robot 100 from triggering the lag-ride-up behavior in response to the first boundary 648 or the second boundary 650, a user can establish a behavioral control zone that covers the first boundary 648 and a behavioral control zone that covers the second boundary 650.

[0220] 18C shows an example where such behavioral control zones have been established, for example, using the methods described in this disclosure. A first behavioral control zone 653 covers a first boundary 648, and a second behavioral control zone 654 covers a second boundary 650. The first and second behavioral control zones 653, 654 are configured to cause the robot 100 to disable its lag-ride-up behavior in response to the robot 100 encountering the behavioral control zones 653, 654. As shown in FIG. 18C , instead of reversing toward the first boundary 648 in response to encountering the first boundary 648, the robot 100 crosses the first boundary 648 because the first behavioral control zone 653 causes the robot 100 to disable its lag-ride-up behavior. Similarly, instead of reversing toward the second boundary 650 in response to encountering the second boundary 650, the robot 100 crosses the second boundary 650 because the second behavioral control zone 654 causes the robot 100 to disable its lag-ride-up behavior. Thus, the robot 100 can cross the hallway 646 into the second room 644 without the first boundary 648 and the second boundary 650 impeding the movement of the robot 100. In some implementations, the robot 100 can perform a coverage behavior in the hallway 646 before crossing the second boundary 650 and advancing into the second room 644.

[0221] The user interface 310 is described as presenting visual information for the user. The user interface 310 can vary in implementation. The user interface 310 can be an opaque display or a transparent display. In the implementation shown in FIG. 4, the user computing device 188 can include an opaque display that can visually present a map as an image viewable on the display. In some implementations, the user computing device 188 can include a transparent display that allows the display to present a virtual reality representation of the map and indicators superimposed on the map.

[0222] The robot 100 shown in FIGS. 2 and 3A-3B is a floor cleaning robot. Specifically, the robot 100 is a robotic vacuum cleaner that moves around a floor surface 10, picking up debris as the robot 100 moves over the debris on the floor surface 10. The type of robot can vary in implementation. In some implementations, the robot is a floor cleaning robot that uses a cleaning pad that is moved along the floor surface to collect debris on the floor surface. The robot can include a fluid application device (e.g., a spraying device, etc.) that applies a fluid (e.g., a cleaning solution including water or a detergent) to the floor surface to loosen the debris on the floor surface. The robot's cleaning pad can absorb the fluid as the robot moves along the floor surface. In addition to the use of behavioral control zones described herein, when the robot is a wet cleaning robot, behavioral control zones can be used to control other parameters of the robot. For example, behavioral control zones can be used to control the robot's fluid application pattern. As the robot moves across a floor surface, it can spray fluid at a particular rate. The rate at which the robot sprays fluid can change when the robot encounters or enters a behavioral control zone. Such behavioral control zones can be recommended in response to sensor events indicating a change in floor surface type.

[0223] In some implementations, a patrol robot equipped with an image capture device may be used. The patrol robot may include a mechanism capable of moving the image capture device relative to the body of the patrol robot. When the robot is a patrol robot, behavioral control zones may be used to control parameters of the robot in addition to those described herein.

[0224] Although the robot 100 is described as a circular robot, in other implementations, the robot 100 can be a robot that includes a substantially rectangular front portion and a substantially semicircular rear portion. In some implementations, the robot 100 has a substantially rectangular outer perimeter.

[0225] In some implementations, the recommended behavioral control zone and / or the user-selected behavioral control zone may snap to a feature in the environment when the behavioral control zone is recommended or selected. For example, the feature may be a wall, a perimeter of a room, a perimeter of an obstacle, an object in a room, a room, a doorway, a hallway, or other physical feature in the environment.

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

[0227] Operations associated with implementing all or a portion of the robotic operation and control described herein may be performed by one or more programmable processors executing one or more computer programs to perform the functions described herein. For example, a mobile device, a cloud computing system configured to communicate with the mobile device and the autonomous cleaning robot, and a controller of the robot may all include processors programmed with a computer program to perform functions, such as sending signals, computing estimates, or interpreting signals. The computer program may be written in any form of programming language (including compiled or interpreted languages), and it may be deployed in any form (including as a stand-alone program or as a module, component, subroutine, or other unit suitable for use in a computing environment).

[0228] The controllers and mobile devices described herein can include one or more processors. Processors suitable for executing computer programs include, by way of example, both general-purpose and special-purpose microprocessors, and any one or more processors of any kind of digital computer. Typically, 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. Typically, a computer will also include, or be operatively coupled to, one or more machine-readable storage media (e.g., a mass PCB for storing data, etc.) (e.g., magnetic, magneto-optical, or optical disks) to receive data from, transfer data to, or both. Machine-readable storage media suitable for embodying computer program instructions and data include all forms of non-volatile storage areas, including, by way of example, semiconductor storage area devices, such as EPROM, EEPROM, and flash storage area devices; magnetic disks, such as internal hard disks or removable disks; magneto-optical disks; and CD-ROM and DVD-ROM disks.

[0229] The robot control and operation techniques described herein may be applicable to controlling other mobile robots besides cleaning robots. For example, a lawn mowing robot or a space monitoring robot may be trained to perform operations in a specific portion of a lawn or space as described herein.

[0230] Elements of different implementations described herein may be combined to form other implementations not specifically described above. Elements may be omitted from the structures described herein without adversely affecting their operation. Moreover, various separate elements may be combined into one or more individual elements to perform the functions described herein.

[0231] Although several implementations have been described, it will be understood that various modifications may be made and, accordingly, other implementations are within the scope of the following claims. [Explanation of symbols]

[0232] 10 Floor Surface 20 Behavioral Control Zone 20a, 20b, 20c, 20d Behavioral Control Zones 30 users 32 routes 50 Docking Station 100 robots 105 Debris 106 Electrical Circuits 108 Housing Infrastructure 109 Controller 110 Drive System 112 Drive Wheel 113 Bottom part 114 Motor 115 Caster Wheel 116 Cleaning Assembly 117 Cleaning entrance 118 Rotatable members 119 Vacuum System 120 motor 121 Rear part 122 Front part 124 Debris Bin 126 Brushes 128 motor 134 Cliff Sensor 136a, 136b, 136c Proximity sensors 137 Optical Indicator System 138 Bumper 139a, 139b Bump sensors 140 Image Capture Device 141 Obstacle Following Sensor 142 Upper part 143 Continuous Loop 144 Memory Storage Element 145 Suction Path 146 horizontal axis 147 Debris Detection Sensor 148 horizontal axis 149 Lid 150 side surface 151 Bin volume sensor 152 Side Surface 154 Anterior surface 156 Corner Surface 158 Corner Surface 162 center 180 Optical Detector 182 Optical Emitter 184 Optical Emitter 185 Communication Network 188 User Computing Devices 190 Autonomous Mobile Robot 192 Remote Computing Systems 210 Environment 212 Sensor Events 214 Threshold Distance 216 Clusters 218 Cluster 220 clusters 230 Environment 232 Sensor Events 234 Sensor Events 236 Sensor Events 241 Cluster 242 clusters 243 Cluster 244 clusters 245 clusters 246 clusters 247 Cluster 248 clusters 248a, 248b clusters 249 Cluster 250 Docking Station 260 Behavior Control Zone 261 Behavioral Control Zone 262 Recommended Behavior Control Zone 265 routes 266 Room 1 267 Second Room 268 routes 269 ​​Third Room 270 traversable routes 310 User Interface 312 Notifications 314 Notification 316 Maps 318 First Indicator Corner 319 320 Second Indicator 321 Downward Direction 322 First Part 324 Second Part 330a, 330b dimensions 332a, 332b dimensions 334 Map 336 Indicator 338 Indicator 339 parts 340 indicator 342 indicator 401 Computing Systems 430 notifications 432 Behavioral Control Zone 434 indicator 436 Recommended 440 notifications 442 Behavioral Control Zone 444 Dining Room 450 maps 452 indicator 453 Label 454 indicator 456 User Input Elements 458 Indicator 460 indicator 462 User Input Elements 463 Behavioral Control Zone Room 463a 463b Behavioral Control Zone 464 Behavioral Control Zone 466 User Input Elements 468 User Input Elements 470 User Input Elements 472 User Input Elements 474 Scheduled Time 476 Scheduled Time 480 Behavior Control Zone 480a, 480b, 480c, 480d, 480e, 480f Behavioral Control Zones 481 Entrance passage rug 482 Kitchen Surfaces 483 Dining Room Area 484 Corner part 485a Entrance area 485b Kitchen area 485c Dining Area 486 Human Occupants 487 Locations 630 Map 632a~632g Boundary indicator 634a~634g Room indicator 636 User Input Elements 638 Behavioral Control Zone 642 Room 1 644 Second Room 646 Hallway 648 First Boundary 650 Second Boundary 651 Rug 652 part 653 First Behavioral Control Zone 654 Second Behavioral Control Zone D1 horizontal distance F forward drive direction FA Front-to-rear axis H1 Height L1 Overall length LA Lateral Axis R Rear drive direction W1 Overall width

Claims

1. receiving mapping data collected by the autonomous cleaning robot as it moves about an environment, a portion of the mapping data indicating locations of objects in the environment; defining a clean zone at the location of the object, wherein the autonomous cleaning robot is configured to initiate a clean action constrained to the clean zone in response to encountering the clean zone in the environment, the clean action constrained to the clean zone being a clean action in the clean zone that is constrained to perform a clean action; Including, The method, wherein the step of defining a clean zone includes the steps of: providing a recommendation of the clean zone to a user using sensor data collected by the autonomous cleaning robot, the sensor data indicating a location where one or more sensors of the autonomous cleaning robot are triggered and being used to provide the recommendation if the triggered location meets a threshold distance criterion and / or a threshold quantity criterion; and receiving acceptance or modification of the recommendation from the user and defining the clean zone for controlling the cleaning behavior of the autonomous cleaning robot.

2. The method of claim 1 , wherein defining the clean zone comprises defining the clean zone based on a type of the object.

3. 3. The method of claim 2, further comprising determining the type of the object based on one or more features in the environment proximate to the object in the environment, and wherein defining the clean zone comprises defining the clean zone based on the determined type of the object.

4. After performing the cleaning behavior in the clean zone, the autonomous cleaning robot: initiate movement to another clean zone associated with another object in the environment; and The method of claim 1 , wherein a cleaning action is initiated in response to encountering the other clean zone.

5. 10. The method of claim 1, further comprising associating a priority with the clean zone, wherein the autonomous cleaning robot is adapted to initiate movement into the clean zone based on the priority associated with the clean zone.

6. 6. The method of claim 5, wherein the autonomous cleaning robot initiates movement to the clean zone in response to a mission having a planned duration less than a threshold duration, the missions including a cleaning mission to perform the clean behavior and a training or mapping mission to collect sensor data, generate the mapping data, and build a map of the environment.

7. 6. The method of claim 5, wherein the autonomous cleaning robot, in response to a low battery status of the autonomous cleaning robot, initiates movement to the clean zone based on the priority associated with the location of the autonomous cleaning robot when the low battery status was triggered.

8. 6. The method of claim 5, further comprising: causing the autonomous cleaning robot to begin moving from a docking station to the clean zone in response to initiation of a mission in the environment, the mission including a cleaning mission to perform the clean behavior and a training or mapping mission to collect sensor data, generate the mapping data, and build a map of the environment.

9. 2. The method of claim 1, wherein the cleaning action corresponds to an intensive cleaning action, and in the intensive cleaning action, the suction power of the autonomous cleaning robot is increased, the movement speed of the autonomous cleaning robot is decreased, and / or the movement pattern of the autonomous cleaning robot is adjusted to make multiple passes over the area covered by the clean zone.

10. 10. The method of claim 9, wherein the intensive clean behavior causes the autonomous cleaning robot to cover the clean zone more than once, increases the vacuum power of the autonomous cleaning robot, or decreases the movement speed of the autonomous cleaning robot.

11. receiving mapping data collected by the autonomous cleaning robot as it moves about an environment; defining a behavioral control zone corresponding to a portion of the mapping data, the behavioral control zone being configured to cause an autonomous cleaning robot to initiate a behavior in response to encountering the behavioral control zone in the environment; associating a priority with the behavioral control zone, wherein the autonomous cleaning robot initiates movement into the behavioral control zone based on the priority associated with the behavioral control zone; Including, The method, wherein the step of defining a behavioral control zone includes the steps of: providing a recommendation of the behavioral control zone to a user using sensor data collected by the autonomous cleaning robot, the sensor data indicating a location where one or more sensors of the autonomous cleaning robot are triggered and being used to provide the recommendation if the triggered location meets a threshold distance criterion and / or a threshold quantity criterion; and receiving acceptance or modification of the recommendation from the user and defining the behavioral control zone for controlling the behavior of the autonomous cleaning robot.

12. The step of associating the priority with the behavior control zone comprises: causing the robot to initiate movement into the behavioral control zone at the start of a mission, the mission including a cleaning mission to perform a clean behavior and a training or mapping mission to collect sensor data, generate the mapping data, and build a map of the environment; and 12. The method of claim 11, wherein the behavior is triggered to be initiated in response to encountering the behavioral control zone, the behavior corresponding to an intensive cleaning behavior performed within the behavioral control zone, wherein the suction power of the autonomous cleaning robot is increased, the movement speed of the autonomous cleaning robot is decreased, and / or the movement pattern of the autonomous cleaning robot is adjusted to make multiple passes over the area covered by the behavioral control zone.

13. After performing the intensive cleaning behavior within the behavior control zone, the autonomous cleaning robot: initiate movement to another behavioral control zone associated with a different priority that is lower than the priority associated with the behavioral control zone; and 13. The method of claim 12, wherein the focused clean behavior is initiated in response to encountering the other behavioral control zone.

14. 12. The method of claim 11, wherein associating the priority with the behavioral control zone comprises associating the priority with the behavioral control zone based on a temporal condition, a spatial condition, an environmental condition selected by a user, or a condition of the autonomous cleaning robot.

15. defining a plurality of behavioral control zones, the behavioral control zones comprising: associating a plurality of priorities with the plurality of behavioral control zones, respectively, the priorities being associated with the behavioral control zones; 12. The method of claim 11, further comprising:

16. 16. The method of claim 15, further comprising providing the autonomous cleaning robot with a schedule for causing the autonomous cleaning robot to prioritize cleaning a first subset of the plurality of behavioral control zones during a first time period and for causing the autonomous cleaning robot to prioritize cleaning a second subset of the plurality of behavioral control zones during a second time period.

17. 17. The method of claim 16, wherein the first time period is during a first cleaning mission and the second time period is during a second cleaning mission.

18. The method of claim 16 , wherein the first time and the second time are during a cleaning mission.

19. 12. The method of claim 11, wherein the autonomous cleaning robot initiates movement into the behavioral control zone in response to a mission having a planned duration less than a threshold duration, the missions including cleaning missions to perform clean behaviors and training or mapping missions to collect sensor data, generate the mapping data, and build a map of the environment.

20. receiving mapping data collected by the autonomous cleaning robot as it moves about an environment; defining a behavioral control zone corresponding to a portion of the mapping data, wherein the autonomous cleaning robot disables a behavior when the autonomous cleaning robot crosses the behavioral control zone; Including, The method, wherein the step of defining a behavioral control zone includes the steps of: providing a recommendation of the behavioral control zone to a user using sensor data collected by the autonomous cleaning robot, the sensor data indicating a location where one or more sensors of the autonomous cleaning robot are triggered and being used to provide the recommendation if the triggered location meets a threshold distance criterion and / or a threshold quantity criterion; and receiving acceptance or modification of the recommendation from the user and defining the behavioral control zone for controlling the behavior of the autonomous cleaning robot.

Citation Information

Patent Citations

  • Floor cleaning device for dry and wet cleaning and method for operating self-propelled floor cleaning device

    JP2016036725A

  • Autonomous mobile device, autonomous mobile method and program

    JP2018165872A

  • Robotic virtual boundaries

    JP2019071046A

  • Vacuum cleaner

    JP2019103618A

  • Autonomous mobile cleaner, cleaning method and program

    JP2019171001A