Control of autonomous mobile robots
The autonomous cleaning robot system addresses inefficiencies by allowing users to define action control zones with prioritization, using sensor data and user input to optimize cleaning actions, ensuring thorough and efficient cleaning even with limited energy.
Patent Information
- Application Number
- JP2025061448
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2020-06-08
- Filing Date
- 2025-04-02
- Publication Date
- 2025-07-30
AI Technical Summary
Existing autonomous cleaning robots lack efficient methods to prioritize and optimize cleaning actions based on environmental conditions and user-defined zones, leading to suboptimal cleaning performance, especially in time-constrained situations.
The autonomous mobile robot system allows users to define action control zones with prioritization, using sensor data and user input to determine cleaning actions, enabling the robot to focus on dirtier areas first and adjust cleaning intensity and sequence based on energy levels and defined zones.
This approach enhances cleaning efficiency by prioritizing dirty areas, optimizing cleaning operations, and improving user interaction and control over the robot's behavior, ensuring thorough cleaning even with limited energy.
Smart Images

Figure 2025111480000001_ABST
Abstract
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] An autonomous mobile robot can clean a house during a cleaning mission, for example, by vacuuming, mopping, or performing some other cleaning operation within the home. A user can operate a user computing device (such as a smartphone) to establish an action control zone that triggers the robot to perform a specific action in response to encountering the action control zone. The action control zone can be prioritized, for example, through the selection of a user, computer, etc., such that the robot is prioritized to move to the action control zone and initiate an action associated with the action control zone during the cleaning mission. The action control zone can be, for example, a concentrated cleaning zone, and the robot can be prioritized to clean an area encompassed by the action control zone at the start of the cleaning mission.
[0006] The advantages of the implementations described in this disclosure can include, but are not limited to, those described below and elsewhere in this disclosure.
[0007] The cleaning mission performed by the robot can be optimized to enable the robot to efficiently clean the area. For example, in an implementation where the action control zone is a clean zone, the robot can prioritize the area covered by the clean zone, and the robot can increase the amount of debris picked up by the robot during the cleaning mission. In particular, when the cleaning mission is time-constrained, the priority for the action control zone can indicate to the robot which areas in the environment should be prioritized during the cleaning mission. The action control zone can correspond to areas that tend to get dirty faster, and thus the priority can enable the robot to clean the dirtier areas first in a time-constrained cleaning mission. In some implementations, the cleaning mission can be time-constrained due to the energy level of the robot. For example, the robot may not be fully charged, and due to this insufficient energy level, it may have an energy level insufficient to cover the entire floor surface of the environment. The robot can prioritize the action control zone and can clean the dirtier areas in the environment first. Thus, through the methods, systems, etc. described in the present disclosure, the robot can clean the environment in a manner that prioritizes cleaning the dirtier areas.
[0008] In an implementation where multiple action control zones are defined, the methods and systems described in this disclosure can provide a way to manage and prioritize a user's cleaning of these multiple action control zones, thus improving the efficiency with which a robot can clean the environment. For example, a user can prioritize one action control zone over another, thus enabling the user to define in detail which zone the robot should first direct its attention to at the start of a cleaning mission and which zone the robot should direct its attention to next. Also, each action control zone can be associated with multiple priorities, each priority corresponding to a different autonomous mobile robot operating in the environment. In this way, the action control zones can have different priorities depending on the autonomous mobile robot.
[0009] Prioritization of action control zones can be based on data collected by an autonomous mobile robot operating in an environment, enabling computer-selected and user-selected action control zones to be based on an accurate real-world view of the conditions in the environment. For example, the robot can have a debris sensor capable of collecting data indicating the amount of debris collected in different parts of the environment. These data can be used by a computer system to recommend action control zones or can be used to present information about the amount of debris collected in different parts of the environment to the user, enabling the user to make selections based on the information about the action control zones. Also, other sensors of the robot can be used for a data-driven approach to selecting action control zones. For example, the robot can have an image capture device capable of collecting data indicating objects in the environment. The objects can be objects associated with debris (e.g., a kitchen counter, an entryway, a dining room table, or other objects where debris tends to be dropped on the floor surface). The locations of these objects can be used to recommend or select action control zones.
[0010] The systems and methods described in this disclosure can improve system-level interactions among autonomous mobile robots, users, and (when present) remote computing systems. In particular, the systems and methods can enable data and inputs from autonomous mobile robots, users, and remote computing systems to be used together to control one or more actions of an autonomous mobile robot. An action control zone can be generated based on a combination of both sensor data created by an autonomous mobile robot and user input provided by a 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 an action control zone. A remote computing system can be capable of collecting sensor data from one or more autonomous mobile robots operating in an environment and also capable of collecting user input from one or more users. The generated action control zone can be used to control the actions of multiple autonomous mobile robots operating in the environment. Moreover, the action control zone can enable adjusted control of the autonomous mobile robots. For example, a first one of the autonomous mobile robots can be controlled to perform a first action when the first autonomous mobile robot encounters the action control zone, while a second one of the autonomous mobile robots can be controlled to perform a second action when the second autonomous mobile robot encounters the action control zone.
[0011] The systems and methods described in this disclosure are capable of improving 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 indicating how the autonomous robot may behave when operating in the environment. Thus, the user can look at the map presented on the user interface and gain a sense of the different action control zones that govern the behavior of the autonomous mobile robot. Moreover, the user can easily use the user interface to modify or create action control zones in the environment.
[0012] In one aspect, the method includes receiving mapping data collected by an autonomous cleaning robot as the autonomous cleaning robot moves around the environment. A portion of the mapping data indicates the location of objects in the environment. The method includes defining a clean zone at the location of the object, wherein the autonomous cleaning robot is configured to initiate a constrained cleaning action in response to encountering the clean zone in the environment.
[0013] In another aspect, the method includes receiving mapping data collected by an autonomous cleaning robot as the autonomous cleaning robot moves around the environment, defining an action control zone corresponding to a portion of the mapping data, wherein the autonomous cleaning robot is configured to initiate an action in response to encountering the action control zone in the environment, and associating a priority with the action control zone, wherein the autonomous cleaning robot is configured to initiate movement to the action control zone based on the priority associated with the action control zone.
[0014] In another aspect, a method performed by an autonomous cleaning robot includes: when the autonomous cleaning robot moves around an environment, transmitting mapping data collected by the autonomous cleaning robot to a remote computing system; receiving data indicating an action control zone associated with a portion of the mapping data and data indicating a priority associated with the action control zone; based on the priority, starting to move to the action control zone; and in response to encountering the action control zone in the environment, starting an action in the action control zone.
[0015] In another aspect, an autonomous cleaning robot includes: a drive system configured to move the autonomous cleaning robot in an environment when the autonomous cleaning robot cleans a floor surface in the environment; a sensor configured to generate mapping data when the autonomous cleaning robot moves around the environment; and a controller configured to execute instructions for performing operations. The operations include: when the autonomous cleaning robot moves around the environment, transmitting mapping data collected by the autonomous cleaning robot to a remote computing system; receiving data indicating an action control zone associated with a portion of the mapping data and data indicating a priority associated with the action control zone; based on the priority, starting to move to the action control zone; and in response to encountering the action control zone in the environment, starting an action in the action control zone.
[0016] In some implementations, the step of defining a clean zone can include the step of defining the clean zone based on the type of object. In some implementations, the method can further include the step of determining the type of object based on one or more contextual features in the environment proximate to the object in the environment. The step of defining a clean zone can include the step of defining the clean zone based on the determined type of object.
[0017] In some implementations, after performing a cleaning 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 cleaning action in response to encountering the other clean zone.
[0018] In some implementations, the method can further include the step of associating a priority with a clean zone, such that the autonomous cleaning robot is configured to initiate movement to the clean zone based on the priority associated with the clean zone. In some implementations, the autonomous cleaning robot can initiate movement to a clean zone in response to a mission having an expected duration less than a threshold duration. In some implementations, the autonomous cleaning robot can initiate movement to a clean zone in response to a low battery status of the autonomous cleaning robot. In some implementations, the method can further include the step of causing, in response to the start of a mission in the environment, the autonomous cleaning robot to initiate movement from a docking station to a clean zone.
[0019] In some embodiments, the cleaning action can correspond to an intensive cleaning action. In some embodiments, the intensive cleaning action can cause the autonomous cleaning robot to cover the cleaning zone two or more times, increase the vacuum power of the autonomous cleaning robot, or decrease the moving speed of the autonomous cleaning robot.
[0020] In some embodiments, the step of associating a priority with an action control zone can cause the autonomous cleaning robot to start moving to the action control zone at the start of the mission, and then can cause an action to be started in response to encountering the action control zone, and the action corresponds to an intensive cleaning action performed within the action control zone. In some embodiments, after performing an intensive cleaning action within the action control zone, the autonomous cleaning robot can start moving to another action control zone associated with a different priority lower than the priority associated with the action control zone, and then can start an intensive cleaning action in response to encountering the other action control zone.
[0021] In some embodiments, the step of associating a priority with an action control zone can include the step of associating a priority with the action control zone based on a user selection of environmental features for association with the action control zone.
[0022] In some implementations, the method can further include defining a plurality of behavior control zones. The step of defining a plurality of behavior control zones can include the step of defining a behavior control zone. The method can further include associating a plurality of priorities with the plurality of behavior control zones, respectively. The step of associating a plurality of priorities with the plurality of behavior control zones can include the step of associating a priority with a behavior control zone. In some implementations, the method includes providing a schedule to the autonomous cleaning robot to cause the autonomous cleaning robot to prioritize cleaning a first subset of the plurality of behavior control zones during a first time and to cause the autonomous cleaning robot to prioritize cleaning a second subset of the plurality of behavior control zones during a second time. In some implementations, the first time can be during a first cleaning mission, and the second time can be during a second cleaning mission. In some implementations, the first time and the second time can be during a cleaning mission.
[0023] In some implementations, the autonomous cleaning robot can initiate movement to a behavior control zone in response to a mission having an expected duration less than a threshold duration.
[0024] In some implementations, the autonomous cleaning robot initiates movement to a behavior control zone in response to the low battery status of the autonomous cleaning robot.
[0025] In some implementations, before the autonomous cleaning robot initiates movement to an area in an environment associated with a priority lower than the priority associated with a behavior control zone, the autonomous cleaning robot initiates movement to the behavior control zone.
[0026] In some implementations, the method can further include causing an autonomous cleaning robot to start moving from a docking station to an action control zone in response to the start of a mission in the environment.
[0027] In some implementations, the action control zone can be a first action control zone, the priority can be a first priority, and the action can be a first action. The method can further include defining a second action control zone, such that the autonomous cleaning robot is configured to start a second action in response to encountering the second action control zone in the environment, and associating the second action control zone with a second priority, such that the autonomous cleaning robot is configured to start moving to the second action control zone based on the second priority associated with the second action control zone. In some implementations, the first priority of the first action control zone can be higher than the second priority of the second action control zone, and the autonomous cleaning robot is configured to start moving to the first action control zone before starting to move to the second action control zone.
[0028] In some implementations, the step of associating a priority with an action control zone can include associating a priority with the action 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 the autonomous cleaning robot moves around the environment. The step of associating priorities with the action control zones may include associating priorities with the action control zones based on the sensor data. In some implementations, the sensor data may indicate the amount of debris detected in the area covered by the action control zones during the mission of the autonomous cleaning robot, and the step of associating priorities with the action control zones based on the sensor data may include associating priorities with the action control zones based on the amount of debris detected in the area covered by the action control zones. In some implementations, the sensor data may indicate the type of debris detected in the area covered by the action control zones during the mission of the autonomous cleaning robot, and the step of associating priorities with the action control zones based on the sensor data may include associating priorities with the action control zones based on the type of debris. In some implementations, the sensor data may indicate objects proximate to or within the action control zones during the mission of the autonomous cleaning robot, and the step of associating priorities with the action control zones based on the sensor data may include associating priorities with the action control zones based on the type of the objects.
[0030] In some implementations, the step of associating priorities with the action control zones may include receiving a user selection of priorities based on recommended priorities. The recommended priorities may be based on sensor data collected by the autonomous cleaning robot as the autonomous cleaning robot moves around the environment.
[0031] In some implementations, the action may be capable of corresponding to intensive cleaning actions.
[0032] In some implementation forms, intensive cleaning actions can cause the autonomous cleaning robot to cover the action control zone more than twice, increase the vacuum power of the autonomous cleaning robot, or decrease the moving speed of the autonomous cleaning robot.
[0033] In some implementation forms, the step of starting to move to the action control zone can include the step of starting to move to the action control zone at the start of the mission, and the step of starting an action in the action control zone can include the step of starting an intensive cleaning action in the action control zone.
[0034] In some implementation forms, the method can further include, after starting an action in the action control zone, starting to move to another action control zone associated with another priority lower than the priority associated with the action control zone, and starting an intensive cleaning action in the other action control zone in response to encountering the other action control zone.
[0035] In some implementation forms, the method can further include receiving data indicating a plurality of action control zones and data indicating a plurality of priorities associated with the plurality of action control zones respectively. The steps of receiving data indicating a plurality of action control zones and data indicating a plurality of priorities can include the step of receiving data indicating an action control zone and data indicating a priority. In some implementation forms, the method can further include receiving a schedule for causing the autonomous cleaning robot to prioritize cleaning a first subset of the plurality of action control zones during a first mission and for causing the autonomous cleaning robot to prioritize cleaning a second subset of the plurality of action control zones during a second mission.
[0036] In some implementation forms, the step of starting to move to the action control zone based on the priority may include, in response to a mission having an expected duration smaller than the threshold duration, the step of starting to move to the action control zone based on the priority.
[0037] In some implementation forms, the step of starting to move to the action control zone based on the priority may include, in response to the low battery status of the autonomous cleaning robot, the step of starting to move to the action control zone.
[0038] In some implementation forms, the step of starting to move to the action control zone based on the priority may include, before starting to move to an area in an environment associated with a priority lower than the priority associated with the action control zone, the step of starting to move to the action control zone.
[0039] In some implementation forms, the step of starting to move to the action control zone based on the priority may include, in response to starting a mission in the environment, the step of starting to move to the action control zone.
[0040] In some implementations, the action control zone can be the first action control zone, the priority can be the first priority, the action can be the first action, and the method further includes receiving data indicating a second action control zone and data indicating a second priority associated with the second action control zone; starting to move to the second action control zone based on the second priority; and starting a second action in the second action control zone in response to encountering the second action control zone in the environment. In some implementations, the first priority of the first action control zone can be higher than the second priority of the second action control zone, and the step of starting to move to the second action control zone based on the second priority can include starting to move to the second action control zone after starting to move to the first action control zone based on the first priority.
[0041] In some implementations, the priority can be a user-selected priority.
[0042] In some implementations, the method can include the step of sending sensor data collected by the autonomous cleaning robot to a remote computing system as the autonomous cleaning robot moves around the environment. The priorities can be selected based on the sensor data. In some implementations, the sensor data can indicate the amount of debris detected in an area covered by an action control zone during a mission of the autonomous cleaning robot, and the priorities can be selected based on the amount of debris detected in the area covered by the action control zone. In some implementations, the sensor data can indicate the type of debris detected in an area covered by an action control zone during a mission of the autonomous cleaning robot, and the priorities can be selected based on the type of debris. In some implementations, the sensor data can indicate an object proximate to or within the action control zone during a mission of the autonomous cleaning robot, and the priorities can be selected based on the type of the object.
[0043] In some implementations, the priorities can be user-selected priorities selected based on recommended priorities. The recommended priorities can be based on sensor data collected by the autonomous cleaning robot as the autonomous cleaning robot moves around the environment.
[0044] In some implementations, the action can correspond to intensive cleaning actions. The intensive cleaning actions can cause the autonomous cleaning robot to cover an action control zone two or more times, increase the vacuum power of the autonomous cleaning robot, or decrease the moving speed of the autonomous cleaning robot.
[0045] In a further aspect, the method includes receiving mapping data collected by an autonomous cleaning robot as the autonomous cleaning robot moves around the environment, and defining an action control zone corresponding to a portion of the mapping data, wherein the autonomous cleaning robot is configured to disable its actions when crossing the action control zone.
[0046] In another aspect, a method implemented by an autonomous cleaning robot includes transmitting mapping data collected by the autonomous cleaning robot to a remote computing system as the autonomous cleaning robot moves around the environment, receiving data indicating an action control zone associated with a portion of the mapping data, and navigating through the action control zone while disabling actions in the action control zone in response to encountering the action control zone.
[0047] In some implementations, the action can correspond to a rug ride up behavior in which the autonomous cleaning robot moves in a rearward direction.
[0048] In some implementations, a portion of the mapping data can correspond to a boundary in the environment.
[0049] In some implementations, the step of disabling the action can include disabling the cleaning system of the autonomous cleaning robot.
[0050] In some implementations, the step of disabling the action can include disabling the rug ride up behavior of the autonomous cleaning robot.
[0051] In another aspect, the autonomous cleaning robot includes a drive system configured to move the autonomous cleaning robot in an environment when the autonomous cleaning robot cleans a floor surface in the environment, a sensor configured to generate mapping data when the autonomous cleaning robot moves around in the environment, and a controller configured to execute instructions for performing operations. The operations include transmitting, by the autonomous cleaning robot, mapping data collected by the autonomous cleaning robot to a remote computing system when the autonomous cleaning robot moves around in the environment, receiving data indicating an action control zone associated with a portion of the mapping data, and navigating through the action control zone while disabling actions in the action control zone in response to encountering the action control zone.
[0052] Details of one or more implementations of the subject matter described in this specification are set forth in the accompanying drawings and the description below. Other potential features, aspects, and advantages will become apparent from the description, the drawings, and the claims.
Brief Description of the Drawings
[0053]
Figure 1
Figure 2
Figure 3A
Figure 3B
Figure 4
Figure 5
Figure 6A
Figure 6B
Figure 7
Figure 8
Figure 9
Figure 10A
Figure 10B
Figure 10C
Figure 10D
Figure 11
Figure 12
Figure 13A
Figure 13B
Figure 13C
Figure 13D
Figure 13E
Figure 13F
Figure 13G
Figure 13H
Figure 13I
Figure 13J
Figure 13K
Figure 14A
Figure 14B
Figure 14C
Figure 14D
Figure 14E
Figure 14F
Figure 15
Figure 16
Figure 17A
Figure 17B
Figure 18A
Figure 18B
Figure 18C
DETAILED DESCRIPTION OF THE INVENTION
[0054] Referring to FIG. 1, the autonomous mobile robot 100 moves around on the floor surface 10 within the environment. The robot 100 is a cleaning robot (e.g., a robotic vacuum cleaner, a robotic mop, or other cleaning robot) that cleans the floor surface 10 as the robot 100 navigates and moves around on the floor surface 10. The robot 100 returns to the docking station 50, and the docking station 50 charges the robot 100. In an example where the robot is a robotic vacuum cleaner that collects debris as the robot 100 travels around the environment, in some implementations, the docking station 50 also evacuates debris from the robot 100 and enables the robot 100 to collect additional debris. As described in the present disclosure, the robot 100 can prioritize cleaning specific portions of the floor surface 10 through a system and process that enables selection of action control zones. For example, a process can be implemented to define action control zones 20a, 20b, 20c, 20d (collectively referred to as action control zone 20) on the floor surface 10. In response to encountering one of these action control zones 20, the robot 100 can initiate an action. The action control zone 20 can be a clean zone that triggers the robot 100 to start a cleaning action within one of the action control zones 20 in response to encountering the action control zone. The action control zone 20 can be selected to correspond to areas within the environment associated with a higher incidence of debris. For example, the action control zone 20a corresponds to an area adjacent to a kitchen workspace (e.g., a sink, a stove, and a kitchen counter, etc.). The action control zone 20b corresponds to an area under and adjacent to a table. The action control zone 20c corresponds to an area adjacent to a couch. The action control zone 20d corresponds to an area covering an entryway rug.
[0055] As described in the present disclosure, the action control zone 20 can be associated with priorities to generate a sequence for the robot 100 to travel to the action control zone. For example, the priority of the action control zone 20a is higher than that of the action control zone 20b, the priority of the action control zone 20b is higher than that of the action control zone 20c, and the priority of the action control zone 20c is higher than that of the action control zone 20d. As a result, in the mission where the robot 100 first cleans the area with a high priority as shown in FIG. 1, the robot 100 moves from the docking station 50 to the action control zone 20a along the path 32, then moves to the action control zone 20b, then moves to the action control zone 20c, and then moves to the action control zone 20d.
[0056] Exemplary autonomous mobile robot Referring to FIG. 2, when the robot 100 crosses 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 periphery 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 household robot having a small profile and is adapted to fit under furniture in the house. The height H1 of the robot 100 with respect to the floor surface (shown in FIG. 2) is, for example, 13 centimeters or less. Also, the robot 100 is compact. The overall length L1 of the robot 100 (shown in FIG. 2) and the overall width W1 (shown in FIG. 3A) are each between 30 centimeters and 60 centimeters, for example, between 30 centimeters and 40 centimeters, between 40 centimeters and 50 centimeters, or between 50 centimeters 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 an electrically driven portion that forms part of the electric circuit 106. The housing infrastructure 108 supports the electric circuit 106 (including at least the 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 rearward drive direction R. Also, the robot 100 can be propelled so that the robot 100 turns in place or turns while moving in the forward drive direction F or the rearward drive direction R. In the example shown in FIG. 3A, the robot 100 includes drive wheels 112 that extend through a bottom portion 113 of the housing infrastructure 108. The drive wheels 112 are rotated by a motor 114, causing the robot 100 to move along the floor surface 10. The robot 100 further includes passive caster wheels 115 that extend through a bottom portion 113 of the housing infrastructure 108. The caster wheels 115 are not powered. Together, the drive wheels 112 and the caster wheels 115 cooperate to support the housing infrastructure 108 above the floor surface 10. For example, the caster wheels 115 are disposed along a rear portion 121 of the housing infrastructure 108, and the drive wheels 112 are disposed forward of the caster wheels 115.
[0059] Referring to FIG. 3B, the robot 100 includes a front portion 122 that is substantially rectangular and a rear portion 121 that is substantially semi-circular. 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 examples shown in FIGS. 2, 3A, and 3B, the robot 100 is an autonomous mobile floor cleaning robot that includes a cleaning assembly 116 (shown in FIG. 3A) operable to clean the floor surface 10. For example, the robot 100 can be a robotic vacuum cleaner, in which the cleaning assembly 116 is operable to clean the floor surface 10 by taking in debris 105 (shown in FIG. 2) from the floor surface 10. The cleaning assembly 116 includes a cleaning inlet 117 through which debris is collected by the robot 100. The cleaning inlet 117 is positioned along the front portion 122 of the robot 100, in front of the center (e.g., center 162) of the robot 100 and between the side surfaces 150 and 152 of the front portion 122.
[0061] The cleaning assembly 116 includes one or more rotatable members (e.g., a rotatable member 118 driven by a motor 120). The rotatable member 118 extends horizontally across the front portion 122 of the robot 100. The rotatable member 118 is positioned along the front portion 122 of the housing infrastructure 108 and extends 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 FIG. 2, the rotatable members 118 are rollers that rotate in opposite directions to each other. For example, the rotatable members 118 are rotatable about parallel horizontal axes 146, 148 (shown in FIG. 3A), agitate debris 105 on the floor surface 10, and direct the debris 105 toward the cleaning inlet 117 and into the cleaning inlet 117 and into the suction path 145 (shown in FIG. 2) within the robot 100. Referring back to FIG. 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 into the interior of the robot 100 (e.g., into the debris bin 124 (shown in FIG. 2)) through the cleaning inlet 117 between the rotatable members 118 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 that is operable to generate an airflow through the cleaning inlet 117 between the rotatable members 118 and into the debris bin 124. The vacuum system 119 can 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 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 members 118 contact the floor surface 10 and agitate the debris 105 on the floor surface 10, thereby enabling 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 degrees and 90 degrees with respect to the floor surface 10). For example, the non-horizontal axis forms an angle between 75 degrees and 90 degrees with respect to the longitudinal axis of the rotatable member 118. The robot 100 includes a motor 128 that is operably connected to the brush 126 to rotate the brush 126.
[0065] The brush 126 is a side brush that is laterally offset from the front-rear axis FA of the robot 100 and is configured to extend beyond the outer periphery of the housing infrastructure 108 of the robot 100. For example, the brush 126 can extend beyond one of the side surfaces 150, 152 of the robot 100, thereby engaging debris on a portion of the floor surface 10 that a rotatable member 118 typically cannot reach (e.g., a portion of the floor surface 10 outside a portion of the floor surface 10 directly under the robot 100). Also, the brush 126 is offset forward from the lateral axis LA of the robot 100 and is configured to extend beyond the front surface 154 of the housing infrastructure 108. As shown in FIG. 3A, the brush 12 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, for example, 0.2 centimeters, for example, 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 such that the brush 126 can easily engage debris 105 on the floor surface 10.
[0066] The brush 126 is rotatable about a non-horizontal axis in a manner that brushes debris on the floor surface 10 into the cleaning path of the cleaning assembly 116 when the robot 100 moves. For example, in the example where the robot 100 is moving in the forward drive direction F, the brush 126 is rotatable in the clockwise direction (when viewed from above the robot 100), and the debris contacted by the brush 126 is moved toward the cleaning assembly and toward a portion of the floor surface 10 in front of the cleaning assembly 116 in the forward drive direction F. As a result, when the robot 100 moves in the forward drive direction F, the cleaning inlet 117 of the robot 100 is capable of collecting the debris swept by the brush 126. In the example where the robot 100 is moving in the rearward drive direction R, the brush 126 is rotatable in the counterclockwise direction (when viewed from above the robot 100), and the debris contacted by the brush 126 is moved toward a portion of the floor surface 10 behind the cleaning assembly 116 in the rearward drive direction R. As a result, when the robot 100 moves in the rearward drive direction R, the cleaning inlet 117 of the robot 100 is capable of collecting the debris to be swept by the brush 126.
[0067] The electrical circuit 106 includes, in addition to the controller 109, for example, a memory storage element 144 and a sensor system including one or more electrical sensors. As described in the present disclosure, the sensor system is capable of generating a signal indicating the current location of the robot 100 and is capable of generating a signal indicating the location of the robot 100 as the robot 100 travels along the floor surface 10.
[0068] The controller 109 is configured to execute instructions for performing one or more operations as described in this disclosure. The 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 environment of the robot 100. For example, referring 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, which is capable of detecting the presence or absence of an object (such as the floor surface 10, etc.) below the optical sensor. Thus, the cliff sensors 134 can detect obstacles (such as drops and cliffs, etc.) below the portion of the robot 100 where the cliff sensors 134 are disposed, and accordingly can redirect the robot.
[0069] Referring to FIG. 3B, the sensor system includes one or more proximity sensors, and the one or more proximity sensors are capable of detecting objects along the floor surface 10 near the robot 100. For example, the sensor system can include proximity sensors 136a, 136b, 136c, and the proximity sensors 136a, 136b, 136c are disposed adjacent to the front surface 154 of the housing infrastructure 108. Each of the proximity sensors 136a, 136b, 136c 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 (such as furniture, walls, people, and other objects in the environment of the robot 100, etc.).
[0070] The sensor system includes a bumper system that includes bumpers 138 and one or more bumper sensors, and the one or more bumper sensors 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 bumper sensors 139a, 139b. The bumper 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 bumper sensor 139a can be used to detect movement of the bumper 138 along the front-rear axis FA (shown in FIG. 3A) of the robot 100, and the bumper 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 contacts the object, and the bumper sensors 139a, 139b can detect an object contacting the bumper 138, for example, in response to the robot 100 contacting the object.
[0071] The sensor system includes one or more obstacle following sensors. For example, the robot 100 can include an obstacle following sensor 141 along the side surface 150. The obstacle following sensor 141 includes an optical sensor facing outward from the side surface 150 of the housing infrastructure 108, which can detect the presence or absence of an object adjacent to the side surface 150 of the housing infrastructure 108. The obstacle following sensor 141 can emit 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 (such as furniture, walls, people, and other objects in the environment of the robot 100). In some implementations, the sensor system can include an obstacle following sensor along the side surface 152, and the obstacle following sensor can detect the presence or absence of an object adjacent to the side surface 152. The obstacle following sensor 141 along the side surface 150 is the right obstacle following sensor, and the obstacle following sensor along the side surface 152 is the left obstacle following sensor. One or more obstacle following sensors (including the obstacle following sensor 141) can also serve as an obstacle detection sensor (similar to the proximity sensor described in the present disclosure). In this regard, the left obstacle following sensor can be used to determine the distance between an object (such as an obstacle surface) on the left side of the robot 100 and the robot 100, and the right obstacle following sensor can be used to determine the distance between an object (such as an obstacle surface) on the right side of the robot 100 and the 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 from the robot 100 (e.g., outward in a horizontal direction), and the optical detector detects the reflection of the optical beam reflected from an object near the robot 100. The robot 100 (e.g., using the controller 109) is capable of determining 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 a plurality of optical emitters 182, 184. One of the optical emitters 182, 184 can be positioned to direct an optical beam outwardly and downwardly, and the other of the optical emitters 182, 184 can be positioned to direct an optical beam outwardly and upwardly. The optical detector 180 is capable of detecting the reflection of the optical beam or the 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 irradiates 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 the beam outwardly toward the obstacle surface, such that a one-dimensional grid of dots appears on one or more obstacle surfaces. The one-dimensional grid of dots can be positioned on a line extending horizontally. In some implementations, the grid of dots can extend across a plurality of obstacle surfaces (e.g., a plurality of obstacle surfaces adjacent to each other). The optical detector 180 is capable of capturing an image representing the grid of dots formed by the optical emitter 182 and the grid of dots formed by the optical emitter 184. Based on the size of the dots in the image, the robot 100 can determine the distance to the object on which the dots appear (e.g., relative to the robot 100). The robot 100 can make this determination for each of the dots, thus enabling the robot 100 to determine the shape of the object on which the dots appear. Additionally, if a plurality of objects are in front of the robot 100, the robot 100 can determine the shape of each of the objects. In some implementations, the object can include one or more objects that are laterally offset from a portion of the floor surface 10 directly in front of the robot 100.
[0074] The sensor system further includes an image capture device 140 (e.g., a camera) directed towards an upper portion 142 of the housing infrastructure 108. The image capture device 140 generates a digital image of the environment of the robot 100 as the robot 100 moves around on the floor surface 10. The image capture device 140 is angled in an upward direction, for example, angled between 30 degrees and 80 degrees from the floor surface 10 around which the robot 100 navigates and turns. When angled upward, the camera can capture an image of the wall surface of the environment, and features corresponding to objects on the wall surface can be used for localization.
[0075] When the controller 109 causes the robot 100 to perform a mission, the controller 109 operates the motor 114 to drive the drive wheels 112 and propel the robot 100 along the floor surface 10. Additionally, the controller 109 operates the motor 120 to cause the rotatable member 118 to rotate, and operates the motor 128 to cause the brush 126 to rotate, and operates the motor of the vacuum system 119 to generate an air flow. To cause the robot 100 to perform various navigation and cleaning actions, the controller 109 executes software stored on the memory storage element 144 and causes the robot 100 to act by operating various motors of the robot 100. The controller 109 operates various motors of the robot 100 to cause the robot 100 to perform actions.
[0076] The sensor system can further include a sensor for tracking the distance traveled by the robot 100, or a sensor for detecting the movement of the robot 100. For example, the sensor system can include an encoder associated with the motor 114 for the drive wheel 112, and these encoders can track the distance traveled by the robot 100. In some implementations, the sensor system includes an optical sensor that faces downward toward the floor surface. The optical sensor can be an optical mouse sensor. For example, the optical sensor can be positioned to direct light through the bottom surface of the robot 100 toward the floor surface 10. The optical sensor can detect the reflection of light and can detect the distance traveled by the robot 100 based on changes in the floor features as the robot 100 travels along the floor surface 10. In some implementations, other motion sensors can include an odometer, an accelerometer, a gyroscope, an inertial measurement unit, and / or other sensors that generate signals indicating the distance traveled, the amount of rotation, the speed, or the acceleration of the robot 100. For example, the robot 100 includes a direction sensor (e.g., a gyroscope, etc.) that generates a signal indicating the amount by which the mobile robot 300 has rotated from the nose bearing. In some implementations, the sensor system includes a dead reckoning sensor (e.g., an IR wheel encoder, etc.) and can generate a signal indicating the rotation of the drive wheel 112, and the controller 109 uses the detected rotation to estimate the distance traveled by the robot 100.
[0077] The sensor system can further include a debris detection sensor 147 (shown in FIG. 2) for detecting debris on the floor surface 10. The debris detection sensor 147 can be used to detect portions of the floor surface 10 in the 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 (or rate of debris) of debris passing through the suction path 145. The debris detection sensor 147 can be an optical sensor configured to detect debris as the debris passes through the suction path 145. Alternatively, the debris detection sensor 147 can be a piezoelectric sensor that detects debris when the debris collides with the wall of the suction path 145. In some implementations, the debris detection sensor 147 detects debris before the debris is taken into the suction path 145 by the robot 100. The debris detection sensor 147 can 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 can be positioned on the front portion of the robot 100 and can be oriented in such a manner as 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 can 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 can 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 can be a switch that is triggered in response to the level of debris reaching a specific threshold level. The bin volume sensor 151 can alternatively be a pressure sensor that is triggered in response to a specific air pressure generated by the vacuum system 119 of the robot 100.
[0079] The sensor system can further include a floor type sensor. The floor type sensor can be a downward-facing optical sensor that identifies the floor type of a portion of the floor surface below the robot 100, or a forward-facing optical sensor that identifies the floor type of a portion of the floor surface in front of the robot 100.
[0080] The controller 109 uses the data collected by the sensors of the sensor system to control the navigation behavior of the robot 100 during a mission. For example, the controller 109 uses the sensor data collected by the obstacle detection sensors of the robot 100 (e.g., the cliff sensor 134, the proximity sensors 136a, 136b, 136c, and the bumper sensors 139a, 139b) to enable the robot 100 to avoid obstacles in the environment of the robot 100 during the mission.
[0081] Sensor data can be used by the controller 109 for techniques that simultaneously perform self-localization and mapping (SLAM: simultaneous localization and mapping). In SLAM techniques, the controller 109 extracts features of the environment represented by the sensor data. Mapping data for constructing a map of the floor surface 10 of the environment can be generated from the sensor data. Sensor data collected by the image capture device 140 can be used for techniques such as vision-based SLAM (VSLAM: vision-based SLAM). In vision-based SLAM, 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 instructs the robot 100 on the floor surface 10 during a mission, the controller 109 uses SLAM techniques to determine the location of the robot 100 in the map by detecting features represented in the collected sensor data and comparing those features to previously memorized features. The map formed from the mapping data can indicate the locations of traversable and non-traversable spaces in the environment. For example, the location of an obstacle is shown on the map as a non-traversable space, and the location of an open floor space is 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. Additionally, other data generated for the SLAM technique (including mapping data that forms a map) may be stored in the memory storage element 144. These data created during a mission can include persistent data, which is created during a mission and can be used during further missions. For example, the mission can be a first mission, and a further mission can be a second mission that occurs after the first mission. In addition to storing software that causes the robot 100 to perform its actions, the memory storage element 144 stores sensor data or data resulting from the processing of sensor data for access by the controller 109 from one mission to another. For example, the map is a persistent map, and the persistent map can be used and updated by the controller 109 of the robot 100 from one mission to another to navigate the robot 100 on the floor surface 10.
[0083] 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 direct the robot 100 towards open floor spaces and avoid impassable spaces. Additionally, for subsequent missions, the controller 109 can use the persistent map to plan the navigation of the robot 100 through the environment in order to optimize the path taken during the mission.
[0084] In some implementations, the robot 100 can include an optical indicator system 137 positioned on the upper portion 142 of the robot 100. The optical indicator system 137 can include a light source positioned in a lid 149 that covers the debris bin 124 (shown in FIG. 3A). The light source can be positioned to direct light towards the periphery of the lid 149. The light source is positioned such that any portion of a continuous loop 143 on the upper portion 142 of the robot 100 can be illuminated. The continuous loop 143 is positioned over a recessed portion of the upper portion 142 of the robot 100 and is adapted such that when the light source is activated, the light source can illuminate the surface of the robot 100.
[0085] Robot 100 is capable of performing various missions in an environment. When Robot 100 is not operating in the environment to perform a mission, it can dock at a docking station (such as docking station 50 shown in FIG. 1). The mission performed by Robot 100 can vary depending on the implementation form. Robot 100 is capable of performing a cleaning mission, in which Robot 100 cleans traversable parts of the environment. At the start of the cleaning mission, Robot 100 can leave docking station 50 and then proceed to perform a combination of actions to cover and clean traversable parts of the environment. Robot 100 can initiate specific actions during the cleaning mission to ensure that Robot 100 substantially covers the entire traversable part of the environment (such as the coverage actions and following actions described in this disclosure). Also, Robot 100 can initiate specific actions in response to the sensor system of Robot 100 detecting specific features in the environment. These actions can be performed as part of the coverage actions and following actions performed by Robot 100 to cover traversable parts of the environment. For example, when Robot 100 encounters an obstacle during a coverage action or a following action, Robot 100 can perform avoidance actions as described in this disclosure to avoid the obstacle. Also, Robot 100 can initiate specific actions in response to encountering an action control zone defined in the environment according to the method described in this disclosure.
[0086] In some implementations, the robot 100 collects sensor data and generates mapping data sufficient to construct a map of the environment. In some implementations, in addition to being able to perform a cleaning mission, the robot 100 is capable of performing a training or mapping mission, where the robot 100 collects sensor data, generates mapping data, and constructs a map of the environment. During a training mission, the robot 100 moves around the environment without activating the cleaning system of the robot 100, for example, without activating the cleaning assembly 116 or the vacuum system 119 of the robot 100. Also, during a mapping mission, the robot 100 is able to move at an average speed that is faster than the average speed at which the robot 100 moves during a cleaning mission. Thus, a training mission can enable the robot 100 to collect sensor data and generate mapping data sufficient to construct a map of the environment while creating less noise (e.g., created by the cleaning system of the robot 100) and moving around the environment more quickly.
[0087] Exemplary communication network Referring to FIG. 4, an exemplary communication network 185 is shown. The nodes of the communication network 185 include the robot 100, the user computing device 188, the autonomous mobile robot 190, and the 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, transmit 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 network) can be used by the communication network 185.
[0088] In some implementations, a user computing device 188, as shown in FIG. 4, is a remote device that can be linked to a remote computing system 192, and the remote device can enable a user 30 to provide input onto the user computing device 188. The user computing device 188 can include user input elements (e.g., a touch screen display, buttons, a microphone, a mouse, a keyboard, or one or more of other devices that respond to input provided by the user 30). The user computing device 188 can alternatively or additionally include immersive media (e.g., virtual reality), and the user 30 interacts with the immersive media to provide user input. In these cases, the user computing device 188 is, for example, a virtual reality headset or a head-mounted display. The user can provide input corresponding to commands for the mobile robot 100. In such cases, the user computing device 188 sends a signal to the remote computing system 192, causing the remote computing system 192 to send a command signal to the mobile robot 100. In some implementations, the user computing device 188 can present an augmented reality image. In some implementations, the user computing device 188 is a smartphone, a laptop computer, a tablet computing device, or other mobile device.
[0089] In some implementations, communication network 185 can include additional nodes. For example, the nodes of communication network 185 can include additional robots. Alternatively or additionally, the nodes of communication network 185 can include network-connected devices. In some implementations, the network-connected devices can generate information about the environment. The network-connected devices can include one or more sensors for detecting features in the environment (e.g., an acoustic sensor that generates a signal from which a feature can be extracted, an image capture system, or other sensors, etc.). The network-connected devices can include, for example, home cameras and smart sensors.
[0090] In the communication network 185 shown in FIG. 4 and in other implementations of the communication network 185, the wireless link can utilize various communication 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 channel, or satellite band, etc.). In some cases, the wireless link includes any cellular network standard used to communicate between mobile devices (including, but not limited to, standards certified as 1G, 2G, 3G, 4G, or 5G). When utilized, the network standard is certified as one or more generations of mobile telecommunications standards, for example, by meeting specifications or standards (such as those maintained by the International Telecommunication Union). When the 3G standard is utilized, it corresponds, for example, to the International Mobile Telecommunications-2000 (IMT-2000) specification, and the 4G standard can correspond to the International Mobile Telecommunications Advanced (IMT-Advanced) specification. Examples of cellular network standards include AMPS, GSM, GPRS, UMTS, LTE, LTE Advanced, Mobile WiMAX, and WiMAX-Advanced. Cellular network standards can use various channel access methods (e.g., FDMA, TDMA, CDMA, or SDMA).
[0091] Exemplary process Robot 100 can be controlled in a specific manner according to the processes described in this disclosure, and can define, establish, and prioritize specific action control zones in the environment. The processes described in this disclosure are exemplary. Some operations of these processes can be described as being performed by robot 100, by a user, by a computing device, or by another actor, but in some implementations, these operations can be performed by actors other than those described. For example, the operations performed by robot 100 can, in some implementations, be performed by remote computing system 192, by another computing device, or by a combination of multiple computing devices. The operations performed by user 30 can be performed by a computing device or by a combination of multiple computing devices. In some implementations, remote computing system 192 does not perform operations. Rather, other computing devices perform the operations described as being performed by remote computing system 192, and these computing devices can communicate directly (or indirectly) with each other and with robot 100. And in some implementations, robot 100 can perform the operations described as being performed by remote computing system 192 or user computing device 188 in addition to the operations described as being performed by robot 100. Other variations are possible. Moreover, the methods, processes, and operations described herein are described as including specific operations or sub-operations, but in other implementations, one or more of these operations or sub-operations can be omitted, or additional operations or sub-operations can be added.
[0092] The motion control zone is used to control the actions of one or more autonomous mobile robots in the environment based on the position of the autonomous mobile robot. The motion control zone can indicate an area in a room where an autonomous mobile robot operates in a specific manner in response to being within that area. For example, such operation can include controlling specific actions of robot 100 while robot 100 is within that area (e.g., starting a specific action while robot 100 is within that area and / or disabling a specific action while robot 100 is within that area, etc.). The actions controlled by the motion control zone can vary in the implementation form.
[0093] When robot 100 moves around in the environment, without a motion control zone, robot 100 can start different actions to efficiently move around the environment and clean the environment. The actions can control the movement of robot 100. For example, robot 100 can start a coverage action to move around the environment and efficiently cover the surface area in the environment. The coverage action can include moving in a convoluted pattern across the floor surface. When robot 100 moves around in the environment during the coverage action, robot 100 can start a follow action in response to detecting an obstacle in the environment. In the follow action, robot 100 moves along the edge defined by the obstacle. The follow action enables robot 100 to clean along the edge. Also, robot 100 can start the follow action after performing the coverage action. Robot 100 can clean along the outer perimeter of the room in the follow action performed after the coverage action.
[0094] Moreover, the movement behavior can correspond to actions that help the robot 100 avoid becoming immobile in the obstacle field. The movement behavior can correspond to an escape action, in which the robot 100 performs one or more small movements and turns to avoid becoming immobile within the obstacle field. The movement behavior can correspond to an avoidance action, in which the robot 100 avoids a specific area in the environment. The reason is that, for example, the area contains impassable obstacles or objects that may interfere with the operation of the drive system or cleaning system of the robot 100. The avoidance action can be, for example, a rug ride-up action, which is triggered in response to the robot 100 detecting that it is moving above an object being ridden up (such as an area rug, etc.). For example, the robot 100 can initiate the rug ride-up action in response to the robot 100's motion sensor detecting a change in the acceleration of the robot 100. The change can be a change in the pitch and / or roll of the robot 100 that exceeds a threshold level.
[0095] The action can alternatively control the cleaning operation of the robot. Such an action can help the robot collect debris in dirtier areas. For example, the action can control the parameters associated with the cleaning operation and improve the debris pickup capacity of the robot. The parameters can be the suction power of the vacuum system 119 of the robot 100, the moving speed of the robot 100, the rotational speed of the brush 126, the rotational speed of the rotatable member 118, or the moving pattern of the robot 100. The robot can initiate the action in response to detecting debris on the floor surface or in response to detecting a specific rate of debris collection by the robot. Alternatively, the action can disable a specific cleaning operation of the robot 100 (such as the vacuum system 119, the brush 126, or the rotatable member 118 of the robot 100). This action can be used to reduce the noise created by the vacuum system 119 of the robot 100 when the robot 100 passes through a specific area in the environment, or can be used to reduce the likelihood that the brush 126 or the rotatable member 118 gets entangled with objects in the area when the robot 100 moves through the area in the environment.
[0096] The action control zone can be used to trigger or disable specific actions of the robot based on the location of the robot. For example, if the action is a moving action, the action control zone can cause the robot 100 to initiate or disable a moving action (such as a ride-up action, an escape action, an avoidance action, or a follow action, etc.).
[0097] If the movement action is an escape action and the action control zone causes the robot to initiate an escape action, entering or encountering the action control zone can indicate that the robot 100 is near an obstacle, and the obstacle may cause the robot 100 to become immobile. The robot 100 can initiate movement in a manner that avoids becoming immobile due to a specific obstacle near the action control zone. If the movement action is an avoidance action and the action control zone causes the robot to initiate an avoidance action, the action control zone is a keep-out zone. The robot 100 can move in a manner that avoids entering the interior of the action control zone. Such movement can include reversing with respect to the action control zone and then moving away from the action control zone. If the movement action is a follow action and the action control zone causes the robot to initiate a follow action, the robot 100 can follow along the perimeter of the action control zone without entering the interior of the action control zone.
[0098] In some embodiments, the actions controlled by the action control zone can be parameters of the cleaning process of the robot 100. The action control zone can be, for example, a concentrated cleaning zone. The parameters can be the suction power of the vacuum system 119 of the robot 100, the moving speed of the robot 100, the rotational speed of the brush 126, the rotational speed of the rotatable member 118, or the moving pattern of the robot 100. The suction power can be increased in concentrated cleaning actions, the moving speed of the robot 100 can be decreased, and / or the moving pattern of the robot 100 can be adjusted to pass over the area covered by the action control zone multiple times (e.g., 2 times, 3 times, or more). The actions can correspond to concentrated cleaning actions, in which the robot 100 performs concentrated cleaning of the area covered by the action control zone. To perform concentrated cleaning, the action control zone causes the robot 100 to adjust the parameters of the cleaning process of the robot 100.
[0099] The type of the motion control zone can be changed in the implementation form. In some implementation forms, the motion control zone is a keep-out zone, and the keep-out zone causes the robot 100 to perform a movement action to avoid entering the keep-out zone. In some implementation forms, the motion control zone can be a quiet zone, in which the robot 100 starts a quiet action, and the quiet action can include starting a movement action and starting a change in the cleaning parameters of the robot 100. In the quiet action, certain systems of the robot 100 are deactivated or activated at a low output to reduce the noise generated by the robot 100 when the robot 100 moves through the quiet zone. The motor of the vacuum system of the robot 100 and / or the motor of the rotatable member of the robot 100 can be deactivated or operated at a low output. The motor of the drive system of the robot 100 can be operated at a low output, thereby causing the robot 100 to cross the quiet zone more slowly than when the robot 100 crosses an area of the environment not covered by the motion control zone.
[0100] In some implementations, the action control zone is a clean zone, and in the clean zone, in response to encountering the action control zone, robot 100 restricts itself to cleaning the area covered by the action control zone. For example, in response to encountering the action control zone, robot 100 can move in a manner that restricts its movement into the action control zone. Only after covering the area within the action control zone does robot 100 continue to clean other parts of the environment. In some implementations, the action control zone is an intensive clean zone, and in the intensive clean zone, robot 100 restricts itself to cleaning the area covered by the action control zone and also changes the cleaning parameters of robot 100 to enable robot 100 to perform intensive cleaning actions in the intensive clean zone (e.g., passing over the area multiple times, increasing the vacuum power, decreasing the movement speed of the robot, 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 motion control zone is a warning zone, and in the warning zone, the robot 100 operates its system in a warning mode to avoid potential obstacles. The warning zone can cover an area near an obstacle previously detected by the robot 100. For example, if the potential obstacle is an obstacle that restricts the movement of the robot 100 across the floor surface, the robot 100 can reduce its movement in the warning zone before detecting the obstacle that triggered the generation of the warning zone using its sensor system. Alternatively, the obstacle can be an obstacle that can easily get caught in the rotatable member, side brush, or drive wheel of the robot 100. In such an example, the warning zone can cause the robot 100 to reduce the speed of its drive wheel, its rotatable member, or its side brush. 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 warning behavior, warning zones, and obstacle avoidance sensitivity are described in U.S. Patent Application No. 16 / 588,295, titled "Image Capture Devices for Autonomous Mobile Robots and Related Systems and Methods," filed on September 30, 2019, which is hereby incorporated by reference in its entirety into this disclosure.
[0102] In an implementation where multiple types of autonomous mobile robots operate in an environment, the behavior control zone can limit what each robot can do in the behavior control zone. For example, when both a robot vacuum cleaner and a robot mop operate in an environment, the behavior control zone can be defined to respond such that only one of the robot vacuum cleaner or the robot mop encounters the behavior control zone. Alternatively or additionally, the behavior control zone can cause both the robot vacuum cleaner and the robot mop to respond to the behavior control zone. The behavior control zone can be a mixed type of behavior control zone, and in a mixed type of behavior control zone, the type of behavior control zone for the robot vacuum cleaner is different from the type of behavior control zone for the robot mop. For example, in an implementation where the behavior control zone covers a rug, the behavior control zone can be a keep-out zone for the robot mop and can also be a clean zone for the robot vacuum cleaner.
[0103] As discussed in this disclosure, the behavior control zone can be defined and then associated with priorities. FIGS. 5, 6A-6B, 7-9, and 10A-10D illustrate exemplary ways to define the behavior control zone. FIG. 5 illustrates a flowchart of an exemplary way to define the behavior control zone. Sensor data collected by an autonomous mobile robot (e.g., robot 100 shown in FIG. 1) can be used to provide a recommended behavior control zone, and a user can accept or modify the recommended behavior control zone to define a behavior control zone for controlling the behavior of robot 100. This method is described with respect to the control of robot 100 described herein. In other implementations, other types of autonomous mobile robots can be controlled by defining a behavior control zone according to an implementation of the method shown in FIG. 5.
[0104] Referring to FIG. 5, process 200 includes operations 202, 204, and 206. Process 200 is used to define an action control zone for controlling the actions of robot 100 (or other autonomous mobile robots operating in the environment). In particular, when robot 100 encounters the action control zone, robot 100 can initiate specific actions in response to the encounter. Robot 100 can encounter the action control zone when it is within a specific distance of the action control zone or when it enters the action control zone.
[0105] A subset of sensor events can be identified as candidates for recommending the action control zone to the user. For example, in operation 202, a subset of sensor events is identified based on the location of the sensor event. Before the subset of sensor events is identified, robot 100 can collect sensor data as it moves around the environment. These sensor data can indicate sensor events and the locations associated with the sensor events.
[0106] A sensor event can occur when one or more sensors of the sensor system of robot 100 are triggered. Environmental features can be associated with the sensor event. The location of the sensor event can correspond to the location of robot 100 when the sensor event occurs, or can correspond to the location of the feature detected by the sensor of robot 100 where the sensor event occurred.
[0107] Features associated with a subset of sensor events and detected by the sensors of robot 100 can vary in implementation. For example, the features detected by the sensors of robot 100 can correspond to objects in the environment. The object can be an obstacle. In such an example, the sensor event is an obstacle detection event, and in an obstacle detection event, one or more sensors of robot 100 are triggered. The obstacle can define an impassable space on the floor surface 10, i.e., a portion of the floor surface 10 that robot 100 cannot cross due to the presence of the object. The obstacle can be, for example, a fixture, a wall, a cliff, a cord, or other types of stationary or moving objects in the environment that can potentially impede the movement of robot 100. In some implementations, the features detected by the sensors of robot 100 can correspond to the geometry of a passable space defined by one or more objects in the environment. For example, walls and other objects in the environment can define a narrow passage of the passable space (e.g., having a width that is one to three times the width of robot 100). The sensor event can occur based on detecting the presence of a passage of the passable space of robot 100. In some implementations, the obstacle can be a feature on the floor surface 10 that can potentially impede the operation of robot 100. For example, the obstacle can be caught by the wheels, brushes, or rotatable members of robot 100. The obstacle can be a cord, a piece of clothing, or other objects that can potentially wrap around the rotating members of robot 100.
[0108] In some implementations, the features detected by the sensors of 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 picked up 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 picked up by the robot 100.
[0109] In some implementations, the features can correspond to objects in an environment associated with debris. For example, the object can be a dining room table. The sensor event can correspond to one or more sensors of the robot 100 that detect the dining room table. Since debris may be dropped more frequently around the dining room table compared to certain other objects, detection of the dining room table can trigger a sensor event for the purpose of defining an action control zone. The action control zone can also be recommended even if the robot 100 does not detect debris in the vicinity around the dining room table. Other objects can also be associated with frequent debris drops. For example, the object can be a doormat, a door, a kitchen island, a dining room table, a trash can, a window, a pet home, a cabinet, or another feature object in an environment associated with an increase in debris.
[0110] In an example where a feature can correspond to an object in an environment associated with debris, this feature, in combination with one or other contextual features in the environment, can function as a basis for a recommendation to define an action control zone. By itself, the feature may not be associated with debris. For example, the object can be a table, and a table, by itself, may not necessarily be associated with debris. The table can be an office table, an end table, or some other table where debris is not typically dropped. One or more contextual features can indicate that the table is of a type typically associated with debris (e.g., a dining table or a coffee table, etc.). One or more contextual features can indicate the type of the room, and it can indicate the type of the table. One or more contextual features can correspond to objects in proximity to the table, which indicates the type of the table or the type of the room. Alternatively, one or more contextual features can be features on the walls of the room, which indicates the type of the room.
[0111] Other features can be detected by the robot 100 and can trigger a sensor event. For example, the features detected by the sensors of the robot 100 to trigger a sensor event can be the floor surface type or the room type.
[0112] In some implementations, the sensor event is an error event, and in the error event, the error associated with the robot 100 is triggered when the robot 100 moves around on the floor surface 10. In response to such an error event, the robot 100 can stop moving during a mission. In some implementations, the error event includes a wheel drop event, and in the wheel drop event, one or more of the drive wheels 112 of the robot 100 extend beyond a threshold distance from the robot. The wheel drop event can be detected by a wheel drop sensor of the robot 100. In some implementations, the error event includes a wheel slip event, and in the wheel slip event, one or more of the drive wheels 112 of the robot 100 lose static friction with the floor surface 10 across which the robot 100 moves. The wheel slip event can 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). In some implementations, the error event includes a wedge event, and in the wedge event, the robot 100 is sandwiched between an obstacle in the environment above the robot 100 and the floor surface 10. The wedge event can be detected by a bumper sensor of the robot 100 or an image capture device 140 of the robot 100. In some implementations, the error event includes a robot stack event, and in the robot stack event, the robot 100 moves into an area in the environment and cannot exit that area. For example, the traversable portion of the area can have restricted dimensions that make it difficult for the robot 100 to exit the area. In some implementations, the error event includes a brush stall event, and in the brush stall event, the brush 126 or the rotatable member 118 cannot rotate. The brush stall event can be detected by an encoder associated with a motor that drives the brush 126 or a motor that drives the rotatable member 118.
[0113] In some implementations, as discussed in this disclosure with respect to FIG. 15, a sensor event can indicate an action that should be disabled to allow the robot 100 to cross a portion of the floor surface. The action can be triggered by one or more sensor events. For example, the action can be an obstacle avoidance action, such as to avoid an obstacle above the floor surface or to avoid a cliff or drop-off. For example, the obstacle avoidance action can be a cliff avoidance action or a rug ride-up action. The obstacle avoidance action typically allows the robot 100 to navigate and move around the environment with fewer errors. In some implementations, the obstacle avoidance action can be triggered by features on the floor surface that do not constitute impassable obstacles for the robot 100. For example, the surface feature can be a dark-colored area of the floor surface that will trigger a cliff avoidance action, or a ridge extending along a portion of the floor surface that will trigger a rug ride-up action. Both the dark-colored area and the ridge are traversable by the robot 100. The ridge can be a boundary between two regions of the environment (e.g., between two rooms in the environment). As discussed in this disclosure with respect to FIG. 15, an action control zone that disables a cliff avoidance action or a rug ride-up action can be established to allow the robot 100 to cross these portions of the floor surface.
[0114] A set of sensor events that can be used as a basis for recommending an action control zone can include specific sensor events that trigger obstacle avoidance actions and one or more sensor events indicating that a portion of the floor surface is traversable. For example, one or more sensor events can include mapping data indicating a traversable floor surface portion adjacent to a portion of the floor surface. The traversable floor surface portion can indicate that a portion of the floor surface is traversable. For example, if a portion of the floor surface includes a ridge extending along the floor surface, the first adjacent portion can be on one longitudinal side of the ridge, and the second adjacent portion can be on the other longitudinal side of the ridge. Alternatively, one or more sensor events can correspond to mapping data indicating that a percentage of the surrounding portion of the floor surface around a portion of the floor surface exceeds a threshold percentage (e.g., at least 55%, 60%, 65%, 70%, 75%, or more). In some implementations where the action to be disabled is a rag ride-up action, one or more sensor events can correspond to floor type data indicating that the floor type around a portion of the floor surface is not, for example, a rag or carpet. In some implementations where the action to be disabled is a cliff avoidance action, one or more sensor events can correspond to image data indicating that a portion of the floor surface is not a drop or a cliff.
[0115] For example, if robot 100 includes a bump sensor, a sensor event can occur when the bump sensor is triggered. The location of the sensor event can correspond to the location of robot 100 when the bump sensor is triggered, or can correspond to the location of contact between robot 100 and an object in the environment that triggers the bump sensor. In a further example, if robot 100 includes an image capture device 140, a sensor event can occur when the image capture device 140 captures an image containing a particular object in the environment. The object can be an obstacle in the environment that robot 100 can contact during navigation. The location of the sensor event can correspond to the location of robot 100 when the image capture device 140 detects the object. Alternatively, the location of the sensor event can correspond to the estimated location of the detected object. The image captured by image capture device 140 can be analyzed to determine the position of the object relative to robot 100, such that the location of the object in the environment can be estimated. A sensor event can also occur when other sensors of robot 100 are triggered as well. For example, a sensor event can occur based on sensing performed by proximity sensors 136a, 136b, 136c, cliff sensor 134, obstacle following sensor 141, optical mouse sensor, encoder, brush motor controller, wheel motor controller, wheel drop sensor, odometer, or other sensors of the sensor system.
[0116] In some implementations, multiple sensors can be involved in sensor events. For example, one of the proximity sensors 136a, 136b, 136c can detect an obstacle in the environment, and the image capture device 140 can also detect the same obstacle. A combination of data from the proximity sensors and the image capture device 140 can indicate that a sensor event has occurred. The location of the sensor event can be determined based on a combination of data from the proximity sensors and the image capture device 140. Other combinations of sensors described herein can be used as the basis for sensor events.
[0117] In operation 202, the criteria for identifying sensor events that are considered to be part of a subset used to recommend an action control zone can vary in different implementations. FIGS. 6A, 6B, and 7 illustrate examples of subsets of sensor events that meet the criteria for recommending an action control zone according to process 200.
[0118] Referring to FIG. 6A, an environment 210 in which a sensor event 212 has occurred is illustrated. To identify a subset of the sensor event 212 for recommending an action control zone, the location of the sensor event 212 is determined. FIG. 6A is a schematic diagram of the location of these sensor events 212 in the environment 210. The subset of the sensor event 212 is identified based on the distance between two or more of the sensor events 212 in the subset. In some implementations, the sensor event 212 can be considered to be in a subset that can serve as the basis for recommending an action control zone if the sensor events 212 are no more than a threshold distance 214 apart from each other. 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 an action control zone can vary in implementation. In some implementations, only one criterion is used to identify a subset of sensor events. The criterion can be a threshold distance criterion, a threshold quantity criterion, or other suitable criteria. In some implementations, multiple criteria (e.g., two or more criteria) are used to identify a subset of sensor events.
[0120] In the example shown in FIG. 6A, the cluster 216 of sensor events 212 satisfies the threshold distance criterion. In particular, each sensor event 212 in the cluster 216 is within a threshold distance 214 of at least one other sensor event 212 in the cluster 216. Also, the cluster 218 of sensor events 212 satisfies the threshold distance criterion because the sensor events 212 in the cluster 218 are not separated from each other by more than the threshold distance 214. The 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, the cluster 216 of sensor events 212 meets a threshold quantity criterion. For example, in some implementations, the threshold quantity criterion requires that the 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. The cluster 216 includes three sensor events 212 and thus meets the criterion that requires the cluster to contain at least three sensor events 212. Since the cluster 218 contains only two sensor events, the cluster 218 does not meet the threshold quantity criterion. Since the cluster 220 contains three sensor events, the cluster 220 meets the sensor event quantity criterion.
[0122] Referring to FIG. 6B, only the cluster 216 of sensor events 212 is used to recommend the action control zone 222 because only the cluster 216 meets both the threshold distance criterion and the threshold quantity criterion. The clusters 218 and 220 do not meet both of these criteria and are thus not used to recommend an action control zone.
[0123] The criteria used to recommend an action control zone can similarly vary in other implementation forms. Referring to FIG. 7, sensor event 232 (represented as a solid-line "X" shaped mark), sensor event 234 (represented as a dashed-line "X" shaped mark), and sensor event 236 (represented as a circular mark) are triggered in environment 230. Two types of sensor events occur, where sensor event 232 and sensor event 234 are of the first type, and sensor event 236 is of the second type. For example, the first type can be an obstacle detection sensor event, and the second type can be a debris detection sensor event. Sensor event 232 and sensor event 234 are different in the order in which they occur. Sensor event 234 occurs before sensor event 232. For example, sensor event 234 is triggered in the first mission of an autonomous mobile robot, and the second event 232 is triggered in the second mission of the autonomous mobile robot. The first mission is an earlier mission that precedes the second mission.
[0124] In the environment, clusters 241-249 of sensor events are identified. 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, which are considered to be part of a subset used to recommend an action control zone, can 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 can include a dock proximity threshold criterion. In the example shown in FIG. 7, the cluster 241 of sensor events 232 satisfies a threshold distance criterion and a 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 below a threshold distance from the location of the docking station 250 for the autonomous mobile robot. The location of the cluster 241 can correspond to any one of the locations of the sensor events 232 within the cluster 241, or can correspond to a computer-calculated value (e.g., an average location or a centroid) based on the locations of the sensor events 232 within the cluster 241. Since the location of the cluster 241 is within the threshold distance from the location of the docking station, to avoid defining an action control zone that prevents the autonomous mobile robot from docking with the docking station 250, the action control zone is not recommended with respect to the cluster 241 of sensor events 212.
[0126] In some implementations, a criterion is satisfied based on whether a cluster containing a first type of sensor event is near a second type of sensor event. If the cluster of first type of sensor events is within a threshold distance or would define an action control zone covering the second type of sensor event, the action control zone is not recommended. In the example shown in FIG. 7, cluster 242 includes some of sensor events 232 and sensor events 236. Cluster 242 of sensor events 232 satisfies both the threshold distance criterion and the threshold quantity criterion. However, since 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 a basis for recommending an action 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, an action control zone for the obstacle detection sensor event is not recommended so that an autonomous mobile robot can enter the area containing sensor event 232 and clean the debris in the area.
[0127] In some implementations, the timing criterion is satisfied based on an amount of time. In the example shown in FIG. 7, cluster 243 includes sensor event 234, and sensor event 234 is triggered at a time earlier than when sensor event 232 is triggered. In some implementations, the amount of time since sensor event 234 occurred exceeds a threshold amount of time and thus does not satisfy the timing criterion. The threshold amount of time can be one day, two days, three days, or more days, or can be one week, two weeks, or more weeks. In some implementations, the timing criterion is satisfied based on the number of missions elapsed since sensor event 234 occurred. The amount of missions since sensor event 234 occurred exceeds a threshold amount of missions and thus does not satisfy the timing criterion. The threshold amount of missions can be one mission, two missions, three missions, or more missions. Since the timing criterion is not satisfied, cluster 243 is not used to recommend an action control zone.
[0128] In some implementations, the threshold distance criterion and the threshold quantity criterion are used regardless of the type of sensor event in the cluster. For example, cluster 244 includes only sensor event 236. The threshold distance criterion and the threshold quantity criterion can use the same threshold distance and the same threshold quantity as the threshold distance criterion and the threshold quantity criterion for the cluster of sensor event 232, respectively. In other implementations, the threshold distance and the threshold quantity can be different depending on the type of sensor event. For example, the threshold distance for debris detection sensor events can be higher or lower than the threshold distance for obstacle detection sensor events. In the example shown in FIG. 7, cluster 244 of sensor event 236 satisfies the relevant criteria for identifying a subset of sensor events to recommend an action control zone. Accordingly, action control zone 260 is recommended. In the example where sensor event 236 is a debris detection sensor event, the recommended action control zone 260 can cause the autonomous mobile robot to perform intensive cleaning actions.
[0129] Cluster 245 of sensor event 232 does not satisfy the threshold quantity criterion. An action control zone is not recommended based on cluster 245.
[0130] In some implementations, the behavior control zone will block the path between the first area and the second area in the environment, and based on whether the autonomous mobile robot is prevented from entering the area, the criteria are satisfied. In the example shown in FIG. 7, the cluster 246 of the sensor event 232 is positioned within the path 265 between the first room 266 and the second room 267. The cluster 246 satisfies the threshold distance criterion and the threshold amount criterion. However, if a behavior control zone is generated to cover the cluster 246 of the sensor event 232, such a behavior control zone will prevent the autonomous mobile robot from moving from the first room 266 to the second room 267, or prevent the autonomous mobile robot from moving from the second room 267 to the first room 266.
[0131] In contrast, the cluster 247 of the sensor event 232 is positioned within the path 268 between the first room 266 and the third room 269. The recommended behavior control zone 261 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 have a width at least as wide as the autonomous mobile robot. In some implementations, to satisfy the criteria, the width of the traversable path 270 must have a width of at least one robot width, two robot widths, or more.
[0132] The cluster 248 includes both the sensor event 232 and the sensor event 234. The cluster 248 satisfies the threshold amount criterion and the threshold distance criterion. Therefore, the recommended behavior control zone 262 is defined.
[0133] In some implementations, a criterion is satisfied based on whether a cluster contains sensor events over a plurality of missions within a period of a predetermined time. In such implementations, action control zones 261 and 260 may not be recommended. The reason is that sensor events 232 and 236 occurred only during a single mission. Nevertheless, action control zone 262 is still recommended. The reason is that cluster 248 includes sensor event 234 that occurs during an earlier mission and sensor event 232 that occurs in a later mission. Sensor data collected by the autonomous mobile robot and associated with sensor events 232 and 234 is collected during a plurality of missions and within a predetermined time period. The amount of the plurality of 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 action control zone, two separate clusters 248a, 248b are used as the basis for the recommended action control zone 262. Each cluster 248a, 248b independently satisfies the criteria for recommending an action control zone. However, the sensor event 232 in cluster 248a and the sensor event 232 in cluster 248b may together not satisfy a particular criterion (e.g., a distance threshold criterion). For example, the closest 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 separate action control zones are recommended, one for cluster 248a and another for cluster 248b. In some implementations, if two or more recommended action control zones satisfy the action control zone separation criterion, the two or more recommended action control zones are combined with each other to form a single recommended action control zone. For example, the resulting recommended action control zones for clusters 248a, 248b may be separated by a distance less than or equal to the threshold distance for the action control zone separation criterion. The threshold distance for the action control zone criterion can be, for example, between 0.5 times and 4 times the width of the robot, and can be, for example, between 0.5 times and 1.5 times, 1 times and 2 times, 1 times and 3 times, 2 times and 4 times the width of the robot, etc. As a result, the recommended action control zones are combined with each other to form a single recommended action control zone (i.e., the recommended action 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 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 sensor events, and the threshold distance for the distance threshold criterion represents an upper bound for the separation between sensor events. In some implementations, the minimum separation criterion is satisfied when at least one of the sensor events in a 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 cluster 249 is within the distance threshold of each of the other sensor events 232 in cluster 249. Since the minimum separation criterion is not satisfied, an action control zone is not recommended based on the cluster 249 of sensor events 232.
[0136] Returning to FIG. 5, a subset of sensor events is identified in operation 202 and can then be used to provide a recommendation regarding an action control zone. After operation 202 is performed, in operation 204, data indicating the recommended action control zone is provided to a user computing device. The recommended action control zone can contain a subset of locations associated with the subset of sensor events. In particular, the area covered by the recommended action control zone can include a subset of locations associated with the subset of sensor events.
[0137] In operation 206, in response to a user selection from a user computing device, a user-selected action control zone is defined. The user-selected action control zone can be based on a recommended action control zone. For example, a user can operate the user computing device to provide a user selection. The user selection can indicate acceptance of the recommended action control zone, rejection of the recommended action control zone, or modification of the recommended action control zone. In some implementations, the user selection corresponds to acceptance of the recommended action control zone, and the user-selected action control zone is the same as the recommended action control zone.
[0138] The definition of the user-selected action control zone can include defining specific parameters of the user-selected action control zone. The parameters of the recommended action control zone (which are defined in operation 204) can serve as a starting point for user modification to define the parameters of the user-selected action control zone.
[0139] In some implementations, the definition of the user-selected action control zone can include defining geometric features of the user-selected action control zone. For example, to define the user-selected action control zone, the perimeter of the user-selected action control zone, one or more dimensions of the user-selected action control zone, the shape of the user-selected action control zone, or other geometric features of the user-selected action control zone can be defined. The geometric features of the recommended action control zone can be defined in operation 204, and then the user can modify one or more of the geometric features of the recommended action control zone in operation 206 to define the user-selected action control zone. For example, the user can modify the length or width of the recommended action control zone to define the length or width of the user-selected action control zone.
[0140] In some implementations, the definition of the user-selected action control zone can include defining a specific action to be performed by the robot 100 or an action to be performed by another autonomous mobile robot operating the environment. In an implementation where only the robot 100 operates in the environment, the user can select which action the robot 100 will perform in response to encountering or entering the user-selected action control zone. For example, the robot 100 can perform a movement action or an intensive cleaning action. In an implementation where multiple autonomous mobile robots operate in the environment, the user can select different actions to be performed by different autonomous mobile robots, or can select that one or more of the autonomous mobile robots will not change their actions in response to encountering or entering the action control zone. In some examples, a first one of the autonomous mobile robots performs an intensive cleaning action in the action control zone, while a second one of the autonomous mobile robots performs a movement action to avoid the action control zone.
[0141] In some implementations, the definition of the user-selected action control zone can include defining a schedule for the action control zone. The recommended action control zone defined in operation 204 can be defined to always be active for all missions performed by robot 100. The user may not want to activate the user-selected action control zone for at least some of the missions that will be performed by robot 100. The schedule can indicate one or more missions for which the user-selected action control zone is active, or can indicate a time period during which the user-selected action control zone is active. For example, the user-selected action control zone can be defined to be active only during missions that occur during work hours, in the morning and afternoon, during certain days of the week, or during certain months. Alternatively, the schedule can also be controlled according to the situation, such that the user-selected action control zone can be active only when certain conditions are met. For example, the user-selected action control zone can be defined to be active only when there is no human occupant of the environment, when the human occupant is not near the location of the action control zone, when the pet is not near the location of the action control zone, when robot 100 has a battery level above a certain threshold, or when another condition related to robot 100 or the environment is satisfied.
[0142] FIG. 8 illustrates a flowchart of an exemplary method for presenting to a user a visual representation of a recommended action control zone and a user-selected action control zone. A map of the environment of the robot 100 can be visually represented and then indicators of the recommended action control zone and indicators of the user-selected action control zone can be overlaid on the map. This method is described with respect to the control of the robot 100 described herein. In other implementations, other types of autonomous mobile robots can be controlled by defining action control zones according to implementations of the method shown in FIG. 8.
[0143] Referring to FIG. 8, process 300 includes operations 302 and 304. Process 300 is used to present indicators of the recommended and user-selected action control zones and provide a user with a visual representation of the geometric features of the action control zones in the environment of the robot 100.
[0144] In some implementations, before operations 302 and 304 are performed, a notification can be sent to the user computing device 188 to notify the user that an action 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 an action control zone is recommended. Notification 312 indicates, for example, that robot 100 has recently become immobile at the same spot due to an obstacle near the spot detected by the obstacle detection sensor of robot 100. User interface 310 further presents a notification 314 indicating that another action control zone is recommended. Notification 314 indicates, for example, that robot 100 has recently detected a lot of debris at the same spot due to debris near the spot detected by the debris sensor of robot 100. The user can operate the user interface 310 and initiate the definition of an action control zone in response to notifications 312, 314.
[0145] Referring back to FIG. 8, in response to a command from the user to initiate the definition of an action control zone, the user interface can present a visual representation of the environment to assist in defining the action control zone. In operation 302, a map of the environment and a first indicator of the recommended action control zone are presented. For example, referring to FIG. 10A, a map 316 and a first indicator 318 are visually presented to the user on the user interface 310 of the user computing device. The visual presentation of map 316 and first indicator 318 can enable the user to visualize where the recommended action control zone will be located within the environment.
[0146] Map 316 can be a visual representation of the floor plan of an environment (e.g., the environment shown in FIG. 1). Map 316 can be generated based on mapping data collected by robot 100 as robot 100 moves around the environment. The recommended action control zone (indicated by the first indicator 318) can be generated based on sensor data collected by robot 100 (shown in FIG. 1). For example, the recommended action control zone can be generated using process 200 (e.g., operations 202 and 204) described herein. The first indicator 318 can be overlaid on the map and can indicate the location of the recommended action control zone in the environment. Moreover, the first indicator 318 can indicate the geometric features (e.g., the perimeter, shape, or one or more dimensions of the recommended action control zone, etc.) of the recommended action control zone. Also, the first indicator 318 is positioned relative to map 316 and can indicate the location of the recommended action control zone in the environment.
[0147] In some implementations, information about the geometric features of the first indicator 318 is also presented on user interface 310. For example, dimensions 330a, 330b are presented on user interface 310 and indicate the width and length of the recommended action control zone. In some implementations, other geometric features can be shown. For example, the perimeter length, side lengths, angle between sides, area, or other geometric measurements of the recommended action control zone can be presented on user interface 310. Additionally, the first indicator 318 indicates that the recommended action control zone is rectangular. In other implementations, the recommended action control zone can have other shapes (including polygonal shapes, circular shapes, triangular shapes, or other shapes).
[0148] In operation 304, a second indicator of the user-selected action control zone is presented on the user interface of the user computing device. For example, referring to FIG. 10B, a map 316 and a second indicator 320 of the user-selected action control zone are presented on the user interface 310. The second indicator 320 can be superimposed on the map 316.
[0149] Moreover, the second indicator 320 can indicate the geometric features of the user-selected action control zone (such as the perimeter, shape, or one or more dimensions of the user-selected action control zone, etc.). Also, the second indicator 320 is positioned relative to the map 316 and indicates the location of the user-selected action control zone in the environment.
[0150] In some implementations, information about the geometric features 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 and indicate the width and length of the recommended action control zone. In some implementations, other geometric features can be shown. For example, the perimeter length, side lengths, angle between sides, area, or other geometric measurements of the recommended action control zone can be presented on the user interface 310. Additionally, the second indicator 320 indicates that the recommended action control zone is rectangular. In other implementations, the recommended action control zone can have other shapes (including polygonal shapes, circular shapes, triangular shapes, or other shapes).
[0151] The second indicator 320 of the user-selected action control zone is presented based on the recommended action control zone represented by the first indicator 318 in FIG. 10A and the user-selected modification of the recommended action control zone. Thus, the second indicator 320 represents the user selection of the action control zone based on the recommended action control zone. Referring to FIG. 10A, the user can interact with the user interface 310 and adjust the recommended action control zone represented by the first indicator 318. For example, the user can operate a user input device (e.g., a touch screen, a mouse, a trackpad, or other user input device) to make a user-selected modification to the shape, size, length, width, or other geometric features of the recommended action control zone. In the example shown in FIG. 10A, if the user interface 310 includes a touch screen, the user can touch the corner 319 of the first indicator 318 and drag it in the downward direction 321 to resize the recommended action control zone. Such resizing creates the user-selected action control zone represented by the second indicator 320.
[0152] When the user makes a change to the recommended action control zone, the second indicator 320 shown in FIG. 10B can indicate the change to the first indicator 318 shown in FIG. 10A, and thus can provide a means of comparison between the recommended action control zone and the user-selected action 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 shows the recommended action control zone and has geometric features corresponding to the geometric features of the first indicator 318 shown in FIG. 10A. The second portion 324 shows the user-selected modification of the recommended action control zone and thus represents the difference between the recommended action control zone and the user-selected action control zone.
[0153] The first and second portions 322, 324 of the second indicator 320 can be distinguished from each other 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 different from the first shading style. In some implementations, the first portion 322 and the second portion 324 have individual colors. In some implementations, rather than showing the first and second portions 322, 324 of the second indicator 320 to indicate a modification of the recommended action control zone, the second indicator 320 is superimposed over the first indicator 318. The second indicator 320 is a transparent layer and it is possible for the first indicator 318 to be visible through the second indicator 320. Thus, the user can view both the first indicator 318 and the second indicator 320, and by viewing both the first indicator 318 and the second indicator 320 simultaneously, it is possible to visually compare the recommended action control zone and the user-selected action control zone.
[0154] In a further implementation, the user can interact with the user interface 310 in other ways to define the action 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 the robot 100 moves around the environment. The map 334 can be a visual representation of the 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, the indicator 336 is an object indicator that indicates a couch detected in the environment, and the indicator 338 is an object indicator that indicates a table detected in the environment. The user can select the indicator 336 or the indicator 338 to define an action control zone in the environment. For example, referring to FIG. 10D, after the user selects the indicator 336, the user interface 310 can present a representation diagram of the portion 339 of the map 334 that includes the indicator 336. The user can then select the type of action control zone and define it to correspond to the couch represented by the indicator 336. For example, the user can call up the indicator 340 to define a keep-out zone or the indicator 342 to define a clean zone.
[0155] Figures 11-12, 13A-13K, and 14A-14F illustrate an exemplary method of defining action control zones and associating priorities with these action control zones. FIG. 11 illustrates a flowchart of an exemplary method of defining action control zones and associating priorities with the action control zones. Referring to FIG. 11, process 350 includes operations 352, 354, and 356. Process 350 is used to define action control zones and then associate priorities with the action control zones. A map of the environment can be constructed based on mapping data collected by robot 100 as robot 100 moves around the environment. The action control zones can be defined according to the methods described in the present disclosure, specifically, according to the methods described in connection with FIGS. 5, 6A-6B, 7-9, and 10A-10D. Priorities can be associated with the action control zones such that robot 100 is prioritized to visit the action control zones during a cleaning mission.
[0156] In operation 352, mapping data collected by robot 100 as it moves around the environment is received. The mapping data can be received by a remote computing device, such as, for example, user computing device 188 (shown in FIG. 4), remote computing system 192 (shown in FIG. 4), controller 109 of robot 100 (shown in FIG. 3A), or some other computing device. The mapping data can be used to construct a map for robot 100 and to indicate traversable and non-traversable locations in the environment. The mapping data can also be used to present a representation of the map of the environment, thus enabling a user to identify areas that robot 100 can traverse and areas that it cannot. As described in this disclosure, the mapping data can be collected by the sensor system of robot 100 as the robot navigates around the environment. Robot 100 can collect this mapping data as part of a cleaning mission of robot 100 or as part of a training mission of robot 100.
[0157] In operation 354, an action control zone is defined. The action control zone can correspond to a portion of the mapping data and is thus associated with a location in the environment. The action control zone can also be associated with one or more actions that robot 100 initiates in response to encountering the action control zone. Data indicating the action control zone can be stored on robot 100, remote computing system 192, or some other computing device.
[0158] In operation 356, priorities are associated with the action control zones. The priorities indicate the degree to which robot 100 should prioritize moving to an action control zone to perform one or more actions with respect to other parts of the environment and / or with respect to other action control zones. The association of priorities with the action control zones causes robot 100 to move to the action control zones according to the relative priorities of the action control zones, and then, upon arriving at the action control zones, causes robot 100 to perform one or more actions associated with the action control zones. Associating priorities with the action control zones can include providing a schedule to robot 100, in which schedule robot 100 cleans only the action control zones and the set of action control zones that include the action control zones during the scheduled cleaning mission.
[0159] In some implementations, robot 100 starts moving to an action control zone at the start of a mission and then starts an action in response to encountering the action control zone. The action can correspond to a cleaning action performed within the action control zone. When an action control zone is next in the priority sequence for cleaning the action control zones, robot 100 can start moving to the action control zone. For example, the priorities for an action control zone can indicate a priority sequence for the action control zone in combination with the priorities associated with other action control zones defined in the environment. When robot 100 is instructed to start an operation to clean one or more of the action control zones, robot 100 can clean the action control zones sequentially based on the priority sequence and, in particular, based on the priorities associated with the action control zones.
[0160] The association between the priority and the action control zone can have different effects on the movement of the robot 100 in different implementation forms. The priority can be associated with some condition that triggers the robot 100 to start moving to the action control zone. In some implementation forms, the priority can cause the robot 100 to start moving to the action control zone in response to the satisfaction of a time condition, a space condition, an environmental condition, or a condition of the robot 100.
[0161] Examples of time conditions include that the current time is the start of a mission, the end of a mission, the start of a mission scheduled for a specific time, a specific time during the mission, the mission duration, or other time-based conditions that cause the robot 100 to start moving to the action control zone when satisfied. For example, the priority associated with the action control zone can cause the robot 100 to start moving to the action control zone at the start of the mission, at the end of the mission, or at some selected time during the mission. In some implementation forms, the mission duration can be limited. For example, the user can select the mission duration when scheduling the mission, or specific environmental conditions (such as the scheduled time during the day when a human occupant is present, etc.) can limit the mission duration. If the planned mission duration is less than the threshold duration, the robot 100 can switch to the priority mode, in which the robot 100 prioritizes moving to a specific action control zone and performing related actions in the action control zone (such as cleaning the action control zone).
[0162] Examples of spatial conditions include the position of robot 100 being within a specific area in the environment, within a specific room in the environment, within a specific distance from an action control zone, within a specific distance from a specific feature in the environment, or being at some other position that causes robot 100 to initiate movement towards the action control zone. For example, the priority associated with an action control zone can cause robot 100 to initiate movement towards the action control zone in response to entering a specific area (e.g., the boundary between rooms, a specific distance from the action control zone, the room containing the action control zone, or other areas of the environment).
[0163] Examples of environmental conditions can include the ability of robot 100 to detect specific conditions in the environment (e.g., the absence of a human occupant in the environment, the absence of a human occupant in a specific area of the environment, whether a door is closed or open, the return of a human occupant to the environment, or any other environmental condition). For example, robot 100 can initiate movement to clean an action control zone corresponding to an entrance passage in the environment in response to the return of a human occupant. This is because the return of the human occupant can potentially be associated with debris being brought into the environment. Alternatively, robot 100 can initiate movement towards the action control zone in response to the absence of a human occupant in the environment and is designed to reduce the amount of noise it makes while a human occupant is present in the environment.
[0164] Examples of robot conditions include the system of robot 100 being in a particular condition. For example, robot 100 may have a particular level of battery charge, (in the example where robot 100 is a robot vacuum cleaner) a particular remaining capacity in its debris bin, (in the example where robot 100 is a robot mop) a particular amount of fluid in its fluid reservoir, or be capable of initiating movement to an action control zone in response to other conditions of robot 100. The low battery status of robot 100 may be triggered at different battery level thresholds depending on the implementation form (for example, a low battery level threshold between 5% and 25%, between 10% and 20%, or other appropriate values).
[0165] In some implementation forms, the priority may be a variable priority that changes according to events (such as time of day, time of year, weather events, or any event that causes an action control zone to be prioritized). For example, an action control zone with variable priority may be prioritized during a particular time of day or a particular time of year and may not be prioritized during other times of day or other times of year. In an example where the variable priority changes according to the time of day, the priority may be defined such that the action control zone is only prioritized between morning and afternoon (for example, a time period when the human occupant is not present in the environment). The action control zone can be in an area of the environment where the human occupant is typically located when the human occupant is in the environment (for example, a living room or kitchen), and the variable priority can reduce the time robot 100 spends in that area so that the noise from robot 100 does not interfere with the human occupant. Alternatively, the action control zone can be in an area frequently traversed by the human occupant (such as a corridor in an office building), and the variable priority can cause robot 100 to prioritize visiting the action control zone during the time of day when the human occupant is typically present.
[0166] In an example where the variable priority changes according to the time of a year, the priority can be defined such that the action control zone is prioritized only during certain months of the year or during certain seasons of the year. The action control zone can be in an area that receives relatively more debris during a particular month or season (e.g., winter), and it can be defined to be prioritized during that particular month or season. Alternatively, the variable priority can change based on weather events. The priority can change as a function of the current or recent weather events. For example, during or after a rainy or snowy weather, there may be a higher likelihood that human occupants will bring debris into the entrance passage of the environment. The action control zone can be prioritized for a predetermined period of time during or after such weather events (e.g., during the weather event and for 12 to 72 hours after the weather event).
[0167] Referring to FIG. 12, a process 400 for defining a user-selected action control zone, associating the user-selected action control zone with a user-selected priority for providing a recommended action control zone and a recommended priority, and controlling a robot 100 based on the user-selected action control zone and the user-selected priority is illustrated. Process 400 includes operations 402, 404, 406, 408, 410, 412, 414, 416, 418, 420, 422.
[0168] Operations 402 and 404 include the operations of robot 100. The reason is that robot 100 performs a cleaning mission or a training mission and operates in the environment. In operation 402, robot 100 starts to operate in the environment. In operation 404, when robot 100 operates in the environment in operation 402, robot 100 collects sensor data and generates mapping data of the environment. The mapping data can be generated based on the sensor data. The mapping data can indicate the sensor data and the location data associated with the sensor data. When robot 100 operates in the environment, robot 100 can clean the 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, robot 100 can move around the floor surface without cleaning.
[0169] Operations 406, 408, and 410 include operations for generating a recommended action control zone and a recommended priority order for the recommended action control zone, as well as operations for presenting these recommendations to the user. Operations 406 and 408 are performed by computing system 401, which can be a controller positioned on robot 100, a controller positioned on user computing device 188, a remote computing system (e.g., remote computing system 192), a distributed computing system including a processor positioned on a plurality of devices (e.g., robot 100, user computing device 188, or remote computing system 192), a processor on an autonomous mobile robot in addition to 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 a recommended action control zone and for generating a recommended priority order. In operation 408, data indicating recommended action control and data indicating a recommended priority order are generated and provided to user computing device 188. Then, in operation 410, an indicator of the recommended action control zone and an indicator of the recommended priority order are presented to user 30, for example, through user computing device 188.
[0170] To generate a recommended action control zone, operations 406 and 408 can include features described with respect to operation 204 of process 200 illustrated in FIG. 5. Considerations for generating a recommended priority order can vary in implementation. In some implementations, the recommended priority order is associated with an action control zone based on, for example, sensor data collected by robot 100 during operation 402.
[0171] Sensor data based on recommended priorities can indicate debris that is collected within or located within an area corresponding to a recommended action control zone. For example, debris can be detected using, for example, a debris detection sensor 147 (shown in FIG. 2) when the robot 100 picks up the debris or when moving near the debris. The sensor data can indicate the characteristics of the debris. For example, the characteristics can be the amount of debris (e.g., the amount of debris normalized by the area of the recommended action control zone), the type of debris (e.g., filamentous debris, particulate debris, granular debris, dirt, debris), the size of the debris, the shape of the debris, or other characteristics of the debris detected by the robot 100.
[0172] Sensor data based on recommended priorities can indicate objects that are proximate to or within an action control zone. The objects can be associated with debris. For example, occupants in the environment (e.g., pets and humans) can drop debris near the objects or can bring debris into an area near the objects. Also, air currents in the environment, and the movement of the occupants, can cause debris to accumulate within specific areas in the environment.
[0173] The type of the object can vary in the implementation form, and the recommended priority can be selected based on the type of the object. In some implementation forms, the edge of the object can indicate a part around the action control zone. For example, the object can be a wall, a corner, a counter, a kitchen counter, a doorway, furniture, or other objects having an edge along the floor surface where debris may accumulate. In some implementation forms, the object can be an object with a part spaced apart from the floor surface. For example, the object can be a table, a chair, a couch, a desk, a bed, or other objects where debris can accumulate under a part of the object. In some implementation forms, the object can be an object on the floor surface that can be traversed by the robot 100. For example, the object can be an area rug or other similar objects. In some implementation forms, the object can be an object associated with an occupant who brings debris onto the floor surface. For example, the object can be a door, an entrance passage, a boundary between rooms, a window, or other similar objects.
[0174] As discussed with respect to operation 356 (shown in FIG. 11), the priority can cause the robot 100 to initiate movement to the action control zone in response to certain conditions being satisfied, which can be time conditions, space conditions, environmental conditions, or conditions of the robot 100. For example, if the condition is a time condition, the recommended priority for the action control zone can correspond to, for example, a recommendation regarding the scheduled time at which the robot 100 initiates movement from the docking station 50 to the action control zone. If the condition is a space condition, the recommended priority can correspond to, for example, a recommendation for defining the room in the environment that triggers the robot 100 to initiate movement to the action control zone. If the condition is an environmental condition, the recommended priority can correspond to, for example, a recommendation for the robot 100 to start the mission when the robot 100 determines that a human occupant has left the environment and that the robot 100 initiates movement to the action control zone at the start of this mission. If the condition is a robot condition, the recommended priority can correspond to, for example, a recommendation for defining the battery level (e.g., between 5% and 25% of full capacity) at which the robot 100 initiates movement to the action control zone.
[0175] To present an indicator of the recommended action control zone and the level of recommended prioritization that will be associated with the recommended action control zone, operation 410 can provide such an indicator in a plurality of ways. Operation 410 can be, for example, similar to operation 302 described with respect to FIG. 8 for presenting an indicator of the recommended action control zone. FIGS. 13A and 13B provide further examples of the user interface 310 for presenting recommendations to the 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 an action control zone 432 is recommended. The notification 430 can include an indicator 434 of a particular robot operating in an environment where a particular action is to be performed in the action control zone 432. For example, the notification 430 here recommends that a robotic mop clean an area corresponding to the action control zone 432. The recommended priority can be associated here with a time condition. The user interface 310 presents a recommendation 436 for adding a scheduled time for cleaning the action control zone 432. At this scheduled time, the action control zone 432 is associated with a priority such that during the scheduled time, the robotic mop will be prioritized to clean the action control zone 432. As discussed in this disclosure, the user 30 can operate the user interface 310 to accept, modify, or reject the recommendation.
[0177] In some implementations, the plurality of robotic cleaners operate in an environment (including robotic mops and robotic vacuum cleaners), and the notification 430 can recommend that another robot operating in the environment (e.g., a robotic vacuum cleaner, etc.) perform a different action in the same action control zone 432. For example, the recommendation can include recommendations regarding a series of actions performed by different robots in the same action control zone 432. The recommendation can include a recommendation for the robotic vacuum cleaner to perform a cleaning action in the action control zone 432, and after the robotic vacuum cleaner has performed a cleaning action in the action control zone 432, a recommendation for the robotic mop to perform a cleaning action in the action control zone 432. When the action control zone 432 corresponds to an area near an entrance passage, the robotic vacuum cleaner can suck up debris brought into the area, and then the robotic mop can wipe the area regarding any dried mud stains and other debris that the robotic vacuum cleaner may have missed.
[0178] In some implementations, the recommendation can include a recommendation for one of the robots to perform an action and a recommendation for one of the robots to avoid the action control zone 432. The action control zone 432 functions as a clean zone for one of the robots and a keep - out zone for the other of the robots. The action control zone 432 can correspond to, for example, a carpeted surface near an entrance passage where an occupant may bring debris into the environment. The action control zone 432 can function as a keep - out zone for the robotic mop and can function as a clean zone for the robotic vacuum cleaner.
[0179] FIG. 13B presents another example of a recommended indicator presented on user interface 310. User interface 310 presents a notification 440 that includes a recommendation for defining an action control zone 442 around a dining table in a dining room 444. When action control zone 442 is added to the list of action control zones for the robot, action control zone 442 can be automatically added to the list of priorities for the robot. For example, if a scheduled time for cleaning the action control zones defined for the robot has already been established, action control zone 442 can be automatically added to the sequence of action control zones to be cleaned at the scheduled time if accepted by user 30. As discussed in this disclosure, user 30 can operate user interface 310 to accept, modify, or reject the recommendation.
[0180] Actions 412 and 414 include actions for user 30 to select an action control zone and the priority associated with the action control zone. In action 412, user 30 provides an input indicating the user-selected action control zone and an input indicating the user-selected priority. In action 414, user computing device 188 presents an indicator of the user-selected action control zone.
[0181] The user inputs in operations 412 and 414 can vary depending on the implementation form. Regarding the user selection of the action control zone, user 30 can accept or modify the recommended action control zone generated in operation 408. For example, user 30 can provide a user selection by accepting the recommended action control zone and the recommended priority, for example, by accepting the recommendations discussed with respect to FIGS. 13A-13B. Alternatively, user 30 can operate user computing device 188 in the manner described with respect to FIGS. 9A and 9B to provide a user-selected modification of the recommended action control zone.
[0182] In an example where user 30 accepts the recommended action control zone, the indicator of the user-selected action control zone can be the same as or similar to the indicator of the recommended action control zone as discussed with respect to operation 410. As discussed with respect to FIGS. 10A-10D, user 30 can modify the recommended action control zone by redefining the perimeter of the recommended action control zone in order to reach the user-selected action control zone. Thus, the example of FIGS. 10A-10D can be an example of operation 410 (where the indicator of the recommended action control zone is presented) and operation 414 (where the indicator of the user-selected action control zone is presented), and can reflect the user input provided in operation 412.
[0183] User 30 can further provide user-selected modifications with recommended priorities. For example, User 30 can select different conditions associated with the priorities (e.g., one of the temporal conditions, spatial conditions, environmental conditions, or robot conditions described in this disclosure). User 30 can modify the temporal condition by scheduling different times for the robot 100 to start moving to the action control zone. User 30 can modify the spatial condition by setting different regions in the environment where the robot 100 starts moving to the action control zone when it enters the region. User 30 can modify the environmental condition by setting different states of an object (e.g., a door) in the environment that will trigger the robot 100 to start moving to the action control zone when detected by the robot 100. User 30 can modify the robot condition by setting different charge levels of the battery of the robot 100 that will trigger the robot 100 to start moving to the action control zone. If other action control zones have already been established, User 30 can modify the relative priorities of the action control zones (e.g., the priority relative to the priorities of other action control zones). User 30 can further adjust the sequence in which the action control zones are traversed.
[0184] In some implementations, rather than presenting indicators of recommended action control zones and priorities, as described with respect to operation 410, user interface 310 presents a representation of a map of the environment, and user 30 can interact with user interface 310 to select an action control zone without basing the selection on an action control zone from a recommended action control zone. Moreover, user 30 can interact with user interface 310 to select a priority for associating with a user-selected action control zone without basing the selection on a selection of an action control zone from a recommended priority. FIGS. 13C-13K illustrate examples of user interface 310 during the process facilitated by user 30 to select an action control zone and to select a priority for associating with an action control zone. In these examples, recommended action control zones and recommended priorities are not provided to user 30.
[0185] Referring to FIG. 13C, user interface 310 presents a map 450 of the environment. Map 450 is labeled with the names of different rooms in the environment and can enable user 30 to easily identify the orientation of map 450. An indicator 452 of the first action control zone and a label 453 for the first action control zone are presented. This first action control zone was previously established, for example, in a space within the environment identified as the living room using the processes described in this disclosure. Label 453 is "couch". Indicator 454 represents this space. In the example presented in FIG. 13C, the first action control zone was previously established as being associated with the couch in the environment. The visual representation on user interface 310 enables user 30 to define action control zones by visual reference to features in the environment (such as rooms, objects, and previously established action control zones, etc.). The user input device of the user computing device can be a touch screen, and user interface 310 can present a user input element 456 that can be invoked (such as by touch) by user 30 to enable user 30 to define action control zones.
[0186] In response to the invocation of user input element 456, the user computing device can be operated to enable user 30 to define a second action control zone. As shown in FIG. 13D, user 30 can define a second action control zone corresponding to an area within the room in the environment identified as the dining room. Indicator 458 represents the second action control zone, and indicator 460 represents the dining room. Indicators 454 and 458 are examples of indicators of user-selected action control zones that will be presented during the exemplary process in operation 418.
[0187] Referring to FIG. 13E, user 30 can provide a label for the second action control zone. User interface 310 provides a user input element 462, and user input element 462 enables user 30 to provide a name for the second action control zone that appears as a label for the second action control zone on map 450 (shown in FIG. 13D). Then, referring to FIG. 13F, user 30 can identify the type of the second action control zone. The type of the action control zone can be, for example, an electrical appliance, a built-in home function, an area for children, a flooring, furniture, an area for pets, a seasonal area, or another area. Other action control zone types are possible, such as, for example, a trash disposal area, a window, an entrance passage, or other types of areas in the environment. In some implementations, user 30 can further define a subtype of the action control zone. For example, if the type of the action control zone is an electrical appliance, the selectable subtypes can include a microwave oven, a toaster, a dishwasher, a washing machine, a dryer, or other suitable electrical appliances. Or, if the type of the action control zone is furniture, the subtypes can include, for example, a couch, a coffee table, or other furniture types, such as specific types of furniture. The type and / or subtype of the action control zone can be used to associate a priority with the action control zone. For example, the type and / or subtype can include specific conditions (such as temporal conditions, spatial conditions, environmental conditions, or robot conditions as discussed in this disclosure).
[0188] The selection of the type and / or subtype can, in some implementations, automatically cause an association between the second action control zone and the priority. For example, if a scheduled time for cleaning the action control zone is already defined, the second action control zone can be added to the action control zone that will be cleaned during the scheduled time. Also, the sequence of the action control zones can be adjusted so that, for example, to minimize backtracking, the robot 100 can efficiently clean each of the action control zones during the scheduled time.
[0189] In some implementations, the prioritized user selection can include the user 30 selecting an action control zone and then causing the robot 100 to start a mission to clean the selected action control zone in the order provided by the user 30. For example, as shown in FIG. 13G, the user 30 can select a subset of some of the action control zones 463 in the environment to be cleaned by the robot 100. The action control zones 463 include a room 463a and, similarly, an action control zone 463b defined separately from the room 463a. The user 30 can operate the user interface 310 to select the action control zones 463 for cleaning and the order in which to clean the action control zones 463. In some implementations, when the user 30 selects a subset of the action control zones 463, the order in which the action control zones 463 are to be cleaned (appearing as numbers next to the selected action control zones 463 in the example shown in FIG. 13G) can be automatically selected. The user 30 can then manually modify the order in which the selected action control zones are to be cleaned. The order in which the action control zones are to be cleaned indicates the relative priority of the selected action control zones. The user 30 can then cause a mission for the robot 100 to start, where the robot 100 cleans the selected action control zones in the selected order.
[0190] In some implementations, priorities can be selected for a plurality of robots (including robot 100) operating in an environment. For example, the plurality of robots can include both a robot mop and a robot vacuum cleaner, and referring to FIG. 13H, user 30 can select a subset of some of the action control zones 464 in the environment that will be cleaned by both the robot mop and the robot vacuum cleaner. User 30 can select the action control zones 464 in a manner similar to that described with respect to FIG. 13G. The sequence selected to clean the action control zones 464 can be the same for both the robot mop and the robot vacuum cleaner. In some implementations, user 30 can define different sequences for the robot mop and the robot vacuum cleaner, such that in a first sequence, the robot mop cleans the selected action control zones, and in a second sequence, the robot vacuum cleaner cleans the selected action control zones. In the example shown in FIG. 13H, when user 30 invokes the user input element 466 and starts the mission, the robot vacuum cleaner cleans the selected action control zones in the selected sequence, and then the robot mop cleans the selected action control zones in the selected sequence.
[0191] Referring to FIGS. 13I - 13K, a scheduled time for the robot 100 to start a mission can also be defined. Referring to FIGS. 13I - 13J, the user interface 310 can present a user input element 468 for selecting a time to start a mission and a user input element 470 for selecting a frequency. The user interface 310 can further present a user input element 472, enabling the user 30 to select between cleaning the entire environment or some subset of the defined action control zones in the environment. In the example shown in FIGS. 13I - 13J, the user 30 selects a time of 9:00 AM with a frequency of twice a week on Tuesdays and Thursdays, where the robot 100 cleans in the order of the kitchen, living room, hallway, and couch. Referring to FIG. 13K, two scheduled times 474, 476 are defined. At the scheduled time 474, the robot 100 starts a mission to clean a first set of action control zones (including the action control zones associated with the kitchen, living room, hallway, and couch). At the scheduled time 476, the robot 100 starts a mission to clean a second set of action control zones (including the action control zones associated with the bedroom, bathroom, and entrance).
[0192] Returning to FIG. 12, operations 416 and 418 include operations for establishing the user-selected action control zone and its priority such that the action control zone and priority can be used to control robot 100. In operation 416, the user-selected action control zone is 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 action control zone is associated with the user-selected priority. 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 a user selection of an action control zone based on a recommended action control zone. In some implementations, the action control zone is defined without any user intervention. The action control zone for controlling robot 100 is automatically generated based on the recommended action control zone without the need for user 30 to provide a modification to the recommended action control zone. The recommended action control zone provided in operation 408 can correspond to the action control zone defined in operation 416. In some implementations, user 30 only accepts the recommended action control zone and defines the action control zone. In other implementations, user 30 does not need to accept the recommended action control zone such that the recommended action control zone is defined. The recommended action control zone is defined when a subset of sensor events are identified. Mobile device 188 does not request input from user 30 to modify the recommended action control zone, and user 30 does not provide input to modify the recommended action control zone (e.g., in operation 412). Mobile device 188 can present an indicator of the recommended action control zone and can indicate that this recommended action control zone is defined as the action control zone for controlling robot 100.
[0194] Actions 420, 422, and 424 include actions for moving the robot 100 to the action control zone based on priority and actions for starting an action when the robot 100 arrives at the action control zone. In action 420, the robot 100 starts moving to the action control zone based on the priority associated with the action control zone. In action 422, the computing system 401 determines that the robot 100 is close to or within the user-selected action control zone. Then, in action 424, the robot 100 starts the action associated with the user-selected action control zone.
[0195] As discussed in the present disclosure, a plurality of action control zones can be defined, and each of these plurality of action control zones can be associated with different relative priorities. The action control zones and related priorities defined in process 400 (e.g., in actions 416 and 418) can be one of the plurality of action control zones that control the actions of the robot 100 in actions 420, 422, and 424. The robot 100 can start moving to other action control zones before or after other action control zones, depending on the relative priorities of the action control zones and whether other action control zones are selected for the robot 100 to travel during the mission when the robot 100 visits the action control zones. For example, in a first action control zone associated with a first priority and in a second action control zone associated with a second priority, in an example where the robot 100 performs a mission to perform an action, if the first priority is higher than the second priority, the robot 100 starts moving to the first action control zone before starting to move to the second action control zone.
[0196] Moreover, as discussed in the present disclosure, the conditions for triggering the robot 100 to start moving to the action control zone can vary in different implementations. For example, in some implementations, the robot 100 starts moving to the action control zone in operation 420 in response to the satisfaction of conditions (such as time conditions, space conditions, environmental conditions, or robot conditions).
[0197] In some implementations, if the action control zone defined in process 400 is a clean zone, the robot 100 can perform clean actions in the action control zone that are consistent with the clean actions performed during the coverage action. In this regard, when performing clean actions in the action control zone, the robot 100 does not change the moving speed, vacuum power, moving pattern, or other cleaning parameters. In some implementations, the action control zone is associated with intensive clean actions, and in intensive clean actions, when performing clean actions in the action control zone, the robot 100 changes the moving speed, vacuum power, moving pattern, or other cleaning parameters. For example, intensive clean actions can cause the robot 100 to cover the action control zone two or more times, increase the vacuum power of the autonomous cleaning robot, or decrease the moving speed of the autonomous cleaning robot.
[0198] Figures 14A - 14F show examples where the robot 100 moves around in the environment and cleans the environment according to the action 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 where the robot 100 operates in an environment containing multiple rooms. The actions described with respect to the action control zones shown in Figures 14A - 14F are clean actions, but in other implementations, other actions can be performed in one or more of the action control zones.
[0199] Referring to FIG. 14A, action control zones 480a, 480b, 480c, 480d, 480e, 480f (collectively referred to as action control zone 480) are defined using, for example, the example of process 400. Action control zone 480b may be associated with the entrance passage lag 481. Action control zone 480c may be associated with the kitchen surface 482. Action control zone 480d may be associated with the dining room area 483. And action control zones 480a, 480e, 480f may be associated with the corner portion 484 of the room. In FIG. 14A, the robot 100 is shown in a docked state at the docking station 50. The action control zones 480 can each have different associated priorities, and the robot 100 is adapted to prioritize one or more of the action control zones 480 over other action control zones 480. For example, in the implementation where the action control zone 480 is a clean zone as shown in FIG. 14A, the robot 100 can prioritize cleaning action control zone 480a, then action control zone 480b, then action control zone 480c, then action control zone 480d, then action control zone 480e, and then action control zone 480f. In a mission with time constraints, the robot 100 can prioritize cleaning action control zone 480a over other action control zones.
[0200] Figures 14B - 14F show further examples where the priorities associated with the action control zone 480 control the navigation of the robot 100. One or more action control zones 480 can be associated with priorities that respond to temporal conditions. For example, referring to Figure 14B, the action control zone 480b associated with the entrance passage lag 481 can be associated with a temporal condition that causes the robot 100 to start moving towards the action control zone 480b at the start of the mission. The mission can be a scheduled mission or a mission manually initiated by the user 30. The priority of the action control zone 480b can be defined such that when the robot 100 starts a mission beginning at the docking station 50, the robot 100 first moves to the action control zone 480b and performs a cleaning action within the action control zone 480b. For example, the robot 100 moves along a series of parallel rows within the action control zone 480b and performs a cleaning action. After performing the cleaning action, the robot 100 can proceed to perform a coverage action to clean the rest of the environment. Alternatively, the mission is a scheduled mission and the priority of the action control zone 480b can be defined such that the robot 100 cleans the action control zone 480b and then returns to the docking station 50.
[0201] In a further example where the priority responds to a time condition, referring to FIG. 14C, the action control zone 480 can be associated with a time condition in which the robot 100 sequentially starts moving to each of the action control zones 480a - 480f in a mission and performs cleaning actions in each of the action control zones 480a - 480f. For example, the user 30 can schedule a mission at a specific time to clean a selected set of action control zones (i.e., action control zones 480a - 480f). At the scheduled time, the robot 100 leaves the docking station 50 and then starts moving to action control zone 480a. After performing the cleaning action in action control zone 480a, the robot 100 starts moving to action control zone 480b and then performs the cleaning action in action control zone 480b. After performing the cleaning action in action control zone 480b, the robot 100 starts moving to action control zone 480c and then performs the cleaning action in action control zone 480c. After performing the cleaning action in action control zone 480c, the robot 100 starts moving to action control zone 480d and then performs the cleaning action in action control zone 480d. After performing the cleaning action in action control zone 480d, the robot 100 starts moving to action control zone 480e and then performs the cleaning action in action control zone 480e. After performing the cleaning action in action control zone 480e, the robot 100 starts moving to action control zone 480f and then performs the cleaning action in action control zone 480f. After performing the cleaning action in action control zone 480f, the robot 100 starts moving back to the docking station 50. Thus, the priority associated with the action control zone 480 in this example results in the robot 100 starting to move to the action control zone 480 during the scheduled mission and in a sequence based on the relative priority.
[0202] One or more of the action control zones 480 may be associated with priorities that respond to spatial conditions. For example, referring to FIG. 14D, the action control zone 480b may be associated with a spatial condition that causes the robot 100 to initiate movement to the action control zone 480b in response to being within the entrance area 485a. For example, when the robot 100 moves around the environment and generates mapping data for constructing a map, regions (e.g., rooms, or regions smaller than a room) 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 an entrance area 485a, a kitchen area 485b, and a dining area 485c. The priority associated with the entrance area 485a is selected such that the robot 100 initiates movement to the action control zone 480b in response to being within the entrance area 485a. The robot 100 then performs an action when the robot 100 encounters the action control zone 480b.
[0203] One or more of the action control zones 480 may be associated with priorities that respond to environmental conditions. Referring to FIG. 14E, the action control zone 480b may be associated with an environmental condition that causes the robot 100 to initiate movement to the action control zone 480b in response to a human occupant 486 entering the environment. The robot 100 may be capable of receiving data indicating that the human occupant 486 has entered the environment. For example, a user computing device carried by the human occupant 486 may be capable of generating location data indicating the location of the user computing device, and based on this location data, it may be possible to transmit data indicating that the human occupant 486 has entered the environment. Thus, the priority that responds to the environmental condition for the action control zone 480b can enable the robot 100 to clean debris that the human occupant 486 may have brought into the environment when the human occupant 486 enters the environment.
[0204] One or more of the action control zones 480 may be associated with a priority for responding to robot conditions. Referring to FIG. 14F, for example, the action control zone 480b may be associated with a robot condition that causes the robot 100 to initiate movement to the action control zone 480a in response to a low battery status of the robot 100. For example, the low battery status may occur when the battery level drops below a battery level threshold (e.g., between 5% and 25%, between 10% and 20%, or at some other suitable value). In the example shown in FIG. 14F, the 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 the action control zone 480a and then performs a cleaning action in the action control zone 480a. After performing the cleaning action in the action control zone 480a, the robot 100 returns to the docking station 50 for recharging. In some implementations, instead of a low battery status that triggers the robot 100 to initiate movement to the action control zone 480a, an almost full status of the debris bin of the robot 100 can trigger the robot 100 to initiate movement to the action 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 action control zone 480a and then perform a cleaning action in the action control zone 480a. The robot 100 then returns to the docking station 50, and the docking station 50 can be enabled to evacuate the debris from the robot 100 into the debris chamber of the docking station 50.
[0205] Figures 15-16, 17A-17B, and 18A-18C illustrate an exemplary method of defining an action control zone to cause an autonomous mobile robot (e.g., robot 100) to disable its actions when the robot crosses the action control zone. In FIG. 15, process 500 includes operations 502 and 504. Process 500 is used to establish an area in the environment that disables certain actions that robot 100 can take to prevent it from crossing the area.
[0206] In operation 502, mapping data collected by robot 100 as it moves around the environment is received. Operation 502 can be similar to operation 352 described with respect to process 350 of FIG. 11.
[0207] In operation 504, an action control zone corresponding to a portion of the mapping data is defined. The action control zone causes robot 100 to disable its actions when it crosses the action control zone. Robot 100 can receive data indicating the action control zone and then, based on the data, disable its actions in response to encountering the action control zone.
[0208] The actions that are disabled can be variable in the implementation. In some implementations, the actions are clean actions. For example, if a user desires to establish a quiet zone (where the robot 100 makes less noise in the environment), the action control zone can be a zone that disables the cleaning system and / or the vacuum system 119 (shown in FIG. 3A) by the robot 100 to reduce the noise created by the robot 100. In some implementations, the action that is disabled is a rag ride-up action, and the rag ride-up action is triggered in response to the robot 100 detecting a motion that exhibits surface features that cause a portion of the robot 100 to move upward, as discussed in the present disclosure.
[0209] Referring to FIG. 15, a process 600 is illustrated for defining a user-selected action control zone for providing a recommended action control zone for disabling the actions of the robot 100, and for controlling the robot 100 such that an action is disabled when the robot crosses the user-selected action control zone. Process 600 includes operations 602, 604, 606, 608, 610, 612, 614, 616, 618, and 620.
[0210] Operations 602 and 604 include the operations of the robot 100, because the robot 100 performs a cleaning mission or a training mission and operates in the environment. In operation 602, the robot 100 is caused to start operating in the environment. In operation 604, the robot 100 collects sensor data and generates mapping data of the environment when the robot 100 is operating in the environment. Operations 602 and 604 can be similar to operations 402 and 404, respectively.
[0211] Actions 606, 608, and 610 include actions for generating a recommended action control zone to disable the actions of robot 100. In action 606, computing system 401 identifies a subset of the sensor events of robot 100. In action 608, data indicating recommended action control is generated and provided to user computing device 188. In action 610, user computing device 188 presents an indicator of the recommended action control zone.
[0212] Action 606 can be similar to action 202 of process 200 and action 406 of process 400. Specifically, the set of sensor events can correspond to the set of sensor events described in relation to action 202 that indicate actions that should be disabled to enable robot 100 to cross traversable portions of the floor surface. Action 608 can be similar to action 204 of process 200 and action 408 of process 400, except that the recommended action control zone is an action control zone for disabling the actions of robot 100 when robot 100 crosses the recommended action control zone. Action 610 can be similar to action 410.
[0213] Actions 612 and 614 include actions for user 30 to select an action control zone. In action 612, user 30 provides an input indicating the user-selected action control zone. In action 614, user computing device 188 presents an indicator of the user-selected action control zone. User 30 can accept the recommended action control zone, modify the recommended action control zone, or modify the recommended action control zone in the manner discussed with respect to action 412, and the user interface can be updated in the manner discussed with respect to action 414.
[0214] User 30 can operate the user computing device 188 and provide an input indicating the action control zone selected by the user in operation 612. FIGS. 17A and 17B illustrate an example in which user 30 operates the user computing device 188 in this way. In the example illustrated in FIGS. 17A and 17B, the recommended action control zone is not provided to user 30. Referring to FIG. 17A, the user interface 310 presents a map 630 of the environment. The user interface 310 provides a visual representation of the floor plan (including a representation of the rooms and the boundaries between the rooms). For example, the user interface 310 can present the indicators 632a - 632g of the boundaries between the indicators 634a - 634g of the rooms in the environment. The user interface 310 presents a user input element 636 that can be invoked by user 30 to define the action control zone selected by the user.
[0215] Referring to FIG. 17B, after the user input element 636 is invoked, user 30 can operate the user interface 310 and select one of the boundary indicators 632a - 632g (shown in FIG. 17A) to define the action control zone. In the example shown in FIG. 17B, user 30 invokes indicator 632a and defines an action control zone 638 along the boundary represented by indicator 632a. As discussed in this disclosure, in response to encountering the action control zone 638, the robot 100 disables obstacle avoidance actions (e.g., the rag ride-up action) when the robot 100 crosses the action control zone 638, thereby enabling the robot 100 to cross the action control zone 638 without triggering an action that would cause the robot 100 to move away from the action control zone 638.
[0216] Operation 616 includes defining a user-selected action control zone such that the user-selected action control zone can be used in a mission by robot 100 (e.g., the current mission, missions started simultaneously, or missions started thereafter). In operation 616, the user-selected action control zone is defined by computing system 401. Operation 616 is similar to operation 206 as described with respect to FIG. 5.
[0217] Operations 618 and 620 include operations for causing robot 100 to start an action when it arrives at a user-selected action control zone. In operation 618, computing system 401 determines that robot 100 is proximate to or within a user-selected action control zone. In operation 620, robot 100 disables an action when robot 100 navigates through a user-selected action control zone. As discussed with respect to operation 504, the action can be a rag ride-up action, a cleaning action, or any other suitable action of robot 100.
[0218] Figures 18A to 18C illustrate an example of a robot 100 that operates according to an action control zone configured to trigger the robot 100 to disable actions when crossing the action control zone. Referring to FIG. 18A, the robot 100 navigates and rotates in an environment including a first room 642, a second room 644, and a corridor 646 between the first room 642 and the second room 644. A first boundary 648 separates the corridor 646 from the first room 642, and a second boundary 650 separates the corridor 646 from the second room 644. FIG. 18A shows, for example, the robot 100 performing a coverage action to clean the first room 642. When the robot 100 performs the coverage action, the robot 100 starts a rug ride-up action in response to a portion 652 of the ride-up rug 651. The robot 100 encounters the ride-up portion 652 and then starts a rug ride-up action to avoid the portion 652 of the rug 651. In the rug ride-up action, the robot 100 reverses away from the portion 652 of the rug 651, crosses over the portion 652 of the rug 651, and avoids potentially becoming immobile.
[0219] FIG. 18B shows an example of the robot 100 operating in an environment without an action control zone crossing the first boundary 648 or the second boundary 650. For example, the robot 100 performs a coverage action to clean the first room 642. When the robot 100 performs the coverage action, the robot 100 starts a rug ride-up action and reverses away from the first boundary 648 in response to encountering the first boundary 648. To avoid the robot 100 triggering a rug ride-up action in response to the first boundary 648 or the second boundary 650, the user can establish an action control zone covering the first boundary 648 and an action control zone covering the second boundary 650.
[0220] FIG. 18C shows an example in which such an action control zone is established using, for example, the methods described in the present disclosure. The first action control zone 653 covers the first boundary portion 648, and the second action control zone 654 covers the second boundary portion 650. The first and second action control zones 653, 654 are configured to cause the robot 100 to disable its rag ride-up action in response to the robot 100 encountering the action control zones 653, 654. As shown in FIG. 18C, instead of reversing with respect to the first boundary portion 648 in response to encountering the first boundary portion 648, the robot 100 crosses the first boundary portion 648. The reason is that the first action control zone 653 causes the robot 100 to disable its rag ride-up action. Similarly, instead of reversing with respect to the second boundary portion 650 in response to encountering the second boundary portion 650, the robot 100 crosses the second boundary portion 650. The reason is that the second action control zone 654 causes the robot 100 to disable its rag ride-up action. Thus, the robot 100 can enter into the second room 644 across the corridor 646 without the first boundary portion 648 and the second boundary portion 650 interfering with the movement of the robot 100. In some implementations, the robot 100 can perform a coverage action in the corridor 646 before advancing into the second room 644 across the second boundary portion 650.
[0221] The user interface 310 is described as presenting visual information for the user. The user interface 310 can vary in its implementation form. The user interface 310 can be an opaque display or a transparent display. In the implementation form 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 implementation forms, the user computing device 188 can include a transparent display, and the transparent display enables 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. In particular, the robot 100 is a robotic vacuum cleaner that moves around on the floor surface 10 and picks up debris as it moves above the debris on the floor surface 10. The type of robot can vary in the implementation form. In some implementation forms, 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 (such as a spraying device), and the fluid application device applies a fluid (such as a cleaning solution containing water or a detergent) to the floor surface to loosen the debris on the floor surface. The cleaning pad of the robot can absorb the fluid as the robot moves along the floor surface. In addition to the use of the behavior control zones described herein, when the robot is a wet cleaning robot, the behavior control zones can be used to control other parameters of the robot. For example, the behavior control zones can be used to control the fluid application pattern of the robot. When the robot moves across the floor surface, the robot can spray the fluid at a specific rate. When the robot encounters or enters a behavior control zone, the rate at which the robot sprays the fluid can change. Such behavior control zones can be recommended in response to sensor events indicating a change in the floor surface type.
[0223] In some implementation forms, a patrol robot equipped with an image capture device can be used. The patrol robot includes a mechanism that can move the image capture device relative to the main body of the patrol robot. When the robot is a patrol robot, the behavior control zones can be used to control the parameters of the robot in addition to those described herein.
[0224] Although robot 100 is described as a circular robot, in other implementation forms, robot 100 can be a robot that includes a front part that is substantially rectangular and a rear part that is substantially semi-circular. In some implementation forms, robot 100 has an outer perimeter that is substantially rectangular.
[0225] In some implementation forms, the recommended behavior control zone and / or the user-selected behavior control zone can snap to features in the environment when the behavior control zone is recommended or selected. For example, the features can be walls, the perimeter of a room, the perimeter of an obstacle, objects in a room, a room, a doorway, a hallway, or other physical features in the environment.
[0226] The robots and techniques described herein, or portions thereof, can be controlled by a computer program product that includes instructions, the instructions being stored on one or more non-transitory machine-readable storage media, and the instructions being executable on one or more processing devices to control (e.g., adjust) the operations described herein. The robots described herein, or portions thereof, can be implemented as all or part of an apparatus or electronic system that can include one or more processing devices and memory for storing instructions executable to implement various operations.
[0227] The operations associated with implementing all or part of the robot operations and controls described in this specification may be implemented by one or more programmable processors executing one or more computer programs to perform the functions described in this specification. For example, a mobile device, a cloud computing system configured to communicate with the mobile device and an autonomous cleaning robot, and the robot's controller may all include processors programmed by a computer program for performing functions such as sending signals, computer calculating estimated values, or interpreting signals. The computer program may be written in any form of programming language (including a compiled language or an interpreted language), and it may be deployed in any form (including being deployed 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 the execution of a computer program include, by way of example, both general and special purpose microprocessors, and any one or more processors of any kind of digital computer. Generally, a processor will receive instructions and data from a read only storage area or a random access storage area or both. Elements of a computer generally include one or more processors for executing instructions and one or more storage area devices for storing instructions and data. Generally, a computer will also include, or be operatively coupled to for receiving data from, or transferring data to, or both, one or more machine-readable storage media (such as, for example, a mass PCB for storing data) (such as, magnetic disks, magneto-optical disks, or optical disks). Machine-readable storage media suitable for embodying computer program instructions and data include all forms of non-volatile storage area, which include, 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 other than cleaning robots. For example, a lawn mowing robot or a space monitoring robot can be trained to perform operations in a particular portion of a lawn or space as described herein.
[0230] The elements of the different implementations described herein can be combined to form other implementations not specifically described above. The elements can be omitted from the structures described herein without adversely affecting their operation. Moreover, various separate elements can be combined into one or more individual elements to perform the functions described herein.
[0231] Multiple implementations have been described. Nevertheless, it will be understood that various modifications can be made. Accordingly, other implementations are within the scope of the claims.
Description of Reference Numerals
[0232] 10 Floor surface 20 Behavior control zone 20a, 20b, 20c, 20d Behavior control zones 30 User 32 Path 50 Docking station 100 Robot 105 Debris 106 Electric circuit 108 Housing infrastructure 109 Controller 110 Drive system 112 Drive wheel 113 Bottom part 114 Motor 115 Caster wheel 116 Cleaning assembly 117 Cleaning inlet 118 Rotatable member 119 Vacuum system 120 Motor 121 Rear part 122 Front part 124 Debris bin 126 Brush 128 Motor 134 Cliff sensor 136a, 136b, 136c Proximity sensors 137 Light indicator system 138 Bumper 139a, 139b Bump sensors 140 Image capture device 141 Obstacle tracking 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 Front surface 156 Corner surface 158 Corner surface 162 Center 180 Optical detector 182 Optical emitter 184 Optical emitter 185 Communication network 188 User computing device 190 Autonomous mobile robot 192 Remote computing system 210 Environment 212 Sensor event 214 Threshold distance 216 Cluster 218 Cluster 220 Cluster 230 Environment 232 Sensor event 234 Sensor event 236 Sensor event 241 Cluster 242 Cluster 243 Cluster 244 Cluster 245 Cluster 246 Cluster 247 Cluster 248 Cluster 248a, 248b Clusters 249 Cluster 250 Docking Station 260 Action Control Zone 261 Action Control Zone 262 Recommended Action Control Zone 265 Route 266 First Room 267 Second Room 268 Route 269 Third Room 270 Crossable Route 310 User Interface 312 Notification 314 Notification 316 Map 318 First Indicator 319 Corner 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 Part 340 Indicator 342 Indicator 401 Computing System 430 Notification 432 Action Control Zone 434 Indicator 436 Recommendation 440 Notification 442 Action Control Zone 444 Dining Room 450 Map 452 Indicator 453 Label 454 Indicator 456 User Input Element 458 Indicator 460 Indicator 462 User Input Element 463 Action Control Zone 463a Room 463b Action Control Zone 464 Action Control Zone 466 User Input Element 468 User Input Element 470 User Input Element 472 User Input Element 474 Scheduled Time 476 Scheduled Time 480 Action Control Zone 480a, 480b, 480c, 480d, 480e, 480f Action Control Zone 481 Entrance Passage Rug 482 Kitchen Surface 483 Dining Room Area 484 Corner Portion 485a Entrance Area 485b Kitchen Area 485c Dining Area 486 Human Occupant 487 Location 630 Map 632a~632g Boundary Indicator 634a~634g Room Indicator 636 User Input Element 638 Action Control Zone 642 First Room 644 Second Room 646 Hallway 648 First Boundary 650 Second Boundary 651 Lug 652 Part 653 First Action Control Zone 654 Second Action Control Zone D1 Horizontal Distance F Forward Drive Direction FA Front - Rear Axis H1 Height L1 Overall Length LA Lateral Axis R Rear Drive Direction W1 Overall Width
Claims
1. When the autonomous cleaning robot moves around in the environment, receiving the mapping data collected by the autonomous cleaning robot, wherein a part of the mapping data indicates the location of an object in the environment, the step; Defining a clean zone at the location of the object, wherein the autonomous cleaning robot is adapted to initiate a cleaning action restricted to the clean zone in response to encountering the clean zone in the environment, the step; A method comprising the above.
2. The method according to claim 1, wherein the step of defining the clean zone includes the step of defining the clean zone based on the type of the object.
3. Further comprising the step of determining the type of the object based on one or more contextual features in the environment proximate to the object in the environment, and the step of defining the clean zone includes the step of defining the clean zone based on the determined type of the object. The method according to claim 2.
4. After performing the cleaning action within the clean zone, the autonomous cleaning robot initiates a movement to another clean zone associated with another object in the environment, and then initiates a cleaning action in response to encountering the other clean zone. The method according to claim 1.
5. The method according to claim 1, further comprising the step of associating a priority with the clean zone, wherein the autonomous cleaning robot is adapted to initiate a movement to the clean zone based on the priority associated with the clean zone.
6. The method according to claim 5, wherein the autonomous cleaning robot initiates a movement to the clean zone in response to a mission having a planned duration shorter than a threshold duration.
7. The method according to claim 5, wherein the autonomous cleaning robot initiates a movement to the clean zone in response to a low battery status of the autonomous cleaning robot.
8. The method according to claim 5, further comprising causing, in response to the start of a mission in the environment, the autonomous cleaning robot to start moving from the docking station to the clean zone.
9. The method according to claim 1, wherein the cleaning action corresponds to an intensive cleaning action.
10. The method according to claim 9, wherein the intensive cleaning action causes the autonomous cleaning robot to cover the clean zone two or more times, increase the vacuum power of the autonomous cleaning robot, or decrease the moving speed of the autonomous cleaning robot.
11. Receiving mapping data collected by the autonomous cleaning robot when the autonomous cleaning robot moves around the environment; Defining an action control zone corresponding to a part of the mapping data, wherein the autonomous cleaning robot is adapted to start an action in response to encountering the action control zone in the environment; Associating a priority with the action control zone, wherein the autonomous cleaning robot is adapted to start moving to the action control zone based on the priority associated with the action control zone. A method comprising the steps of.
12. The step of associating the priority with the action control zone causes the autonomous cleaning robot to start moving to the action control zone at the start of a mission, and then start the action in response to encountering the action control zone, the action corresponding to an intensive cleaning action performed within the action control zone. The method according to claim 11.
13. After performing the intensive cleaning action within the action control zone, the autonomous cleaning robot starts moving to another action control zone associated with another priority lower than the priority associated with the action control zone, and then starts an intensive cleaning action in response to encountering the other action control zone. The method according to claim 12.
14. The step of associating the priority with the action control zone includes the step of associating the priority with the action control zone based on a user selection of environmental features for association with the action control zone, the method according to claim 11.
15. Defining a plurality of action control zones, the step including defining the action control zones; Associating a plurality of priorities with the plurality of action control zones respectively, the step including associating the priority with the action control zone; The method according to claim 11, further comprising.
16. Providing a schedule for causing the autonomous cleaning robot to prioritize cleaning a first subset of the plurality of action control zones during a first time and for causing the autonomous cleaning robot to prioritize cleaning a second subset of the plurality of action control zones during a second time, the method according to claim 15.
17. The method according to claim 16, wherein the first time is during a first cleaning mission and the second time is during a second cleaning mission.
18. The method according to claim 16, wherein the first time and the second time are during a cleaning mission.
19. The method according to claim 11, wherein the autonomous cleaning robot starts moving to the action control zone in response to a mission having a planned duration smaller than a threshold duration.
20. Receiving mapping data collected by the autonomous cleaning robot when the autonomous cleaning robot moves around the environment; Defining an action control zone corresponding to a part of the mapping data, the step being such that the autonomous cleaning robot disables its action when the autonomous cleaning robot crosses the action control zone; A method comprising.
Citation Information
Patent Citations
Creating an environment map
DE102018207588A1
Robot cleaner and method for controlling the same
JP2013045463A
Autonomous robotic device and associated control method
WO2019072965A1
Image capture devices for autonomous mobile robots and related systems and methods
US20210096560A1