Mobile robot docking validation

The mobile robot system addresses docking challenges by using imaging and obstacle detection to ensure clear docking areas and suggest station repositioning, improving docking reliability and autonomy.

JP2025176011APending Publication Date: 2025-12-03IROBOT CORP

Patent Information

Application Number
JP2025128590
Authority / Receiving Office
JP · JP
Patent Type
Applications
Current Assignee / Owner
Priority Date
2020-12-28
Filing Date
2025-07-31
Publication Date
2025-12-03

AI Technical Summary

Technical Problem

Existing mobile robots face challenges in accurately docking due to obstacles or changes in the docking station's position, leading to potential interference and failure in the docking process.

Method used

A mobile robot system with a docking station and a mobile cleaning robot equipped with imaging sensors and a controller circuit to detect obstacles, generate notifications, and suggest alternative docking locations or station repositioning, using augmented reality to visualize the docking area and communication signals for optimal docking.

Benefits of technology

Ensures clear and efficient docking by identifying and resolving obstacles, improving docking reliability and providing user recommendations for optimal station placement, thereby enhancing the autonomy and functionality of mobile robots.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 2025176011000001_ABST
    Figure 2025176011000001_ABST
Patent Text Reader

Abstract

To provide systems, devices, and methods for validating location of a docking station for docking a mobile robot.SOLUTION: In an example, a mobile robot system includes a docking station and a mobile cleaning robot. The mobile cleaning robot includes: a drive system to move the mobile cleaning robot about an environment including a docking area within a predetermined distance from the docking station; and a controller circuit to detect, from an image of the docking area, a presence or absence of one or more obstacles in the docking area. A notification may be generated to inform a user about the detected obstacles. The mobile device may generate recommendation information to the user to clear the docking area or to reposition the docking station or may suggest one or more candidate locations for placing the docking station.SELECTED DRAWING: Figure 5
Need to check novelty before this filing date? Find Prior Art

Description

[Technical Field]

[0001] Priority Application This application is a continuation of and claims the benefit of priority to U.S. Patent Application No. 17 / 134658, filed December 28, 2020. The contents of U.S. Patent Application No. 17 / 134658 are incorporated herein by reference in their entirety.

[0002] FIELD OF THE INVENTION The present specification relates generally to mobile robots, and more particularly to systems, devices, and methods for verifying docking positions for docking a mobile robot. [Background technology]

[0003] Autonomous mobile robots move around within an environment and can perform a number of functions and operations in various categories, including, but not limited to, security operations, infrastructure or maintenance operations, navigation or mapping operations, inventory control operations, and robot / human interaction operations. Some mobile robots, called cleaning robots, can autonomously perform cleaning tasks within an environment, such as a home. Many types of cleaning robots have different degrees of autonomy. For example, a cleaning robot can perform a cleaning mission, traversing the floor surface of its environment while simultaneously sucking (e.g., vacuuming) debris from the floor surface.

[0004] Some mobile robots can perform self-charging at a docking station (also called a robot dock or dock) located within the environment (e.g., a user's home) whenever their battery level reaches a sufficiently low value. Some mobile robots can temporarily store waste in a waste bin associated with the mobile robot and empty the waste into a receptacle on the docking station when docking with the docking station. The mobile robot can detect the docking station and navigate until it docks. The mobile robot may then engage charging contacts on the docking station to charge its battery and / or empty the bin. [Prior art documents] [Patent documents]

[0005] [Patent Document 1] U.S. Patent Application No. 7,196,487 [Patent Document 2] U.S. Patent Application No. 7404000 [Patent Document 3] U.S. Patent Application No. 20050156562 [Patent Document 4] U.S. Patent Application No. 20140100693 [Patent Document 5] U.S. Patent Application No. 2014 / 0207282 Summary of the Invention [Means for solving the problem]

[0006] This specification describes systems, devices, and methods for automatically verifying a docking location for docking a mobile robot. This verification ensures that the docking area is free of obstacles that may impede or interfere with the docking behavior of the mobile robot. According to various examples, a mobile robot system is provided that includes a docking station and a mobile cleaning robot. The mobile cleaning robot includes a drive system for moving the mobile cleaning robot around an environment that includes a docking area within a predetermined distance from the docking station, and a controller circuit for detecting the presence or absence of one or more obstacles in the docking area from images of the docking area, such as images taken by a camera associated with the mobile cleaning robot or a camera on a mobile device. A notification or alert may be generated to inform a user about detected obstacles in the docking area or if the docking station shifts over time, such as due to moving an object (e.g., furniture). Recommendation information indicating to clear the docking area or reposition the docking station may be presented to the user on the mobile device. In some examples, the mobile device may automatically suggest one or more alternative locations for placing the docking station.

[0007] Example 1 is a mobile robot system comprising: a docking station; a mobile cleaning robot, the mobile cleaning robot including a drive system configured to move the mobile cleaning robot around in an environment including a docking area within a predetermined distance from the docking station; and a controller circuit configured to receive images of the docking area, detect from the received images the presence or absence of one or more obstacles in the docking area, and generate a notification to a user regarding the presence or absence of the one or more obstacles detected.

[0008] In Example 2, the subject matter of Example 1 optionally includes a mobile cleaning robot that can include an imaging sensor configured to generate an image of a docking area.

[0009] In Example 3, the subject matter of any one or more embodiments in Examples 1 and 2 optionally includes a controller circuit that can be configured to receive an image of the docking area from a mobile device in operative communication with the mobile cleaning robot, the mobile device including an imaging sensor configured to generate an image of the docking area.

[0010] In Example 4, the subject matter of any one or more of Examples 1-3 optionally includes a controller circuit that can be configured to detect the presence or absence of one or more obstacles in the docking area based on a comparison of an image of the docking area to a stored image of the docking area without the obstacles.

[0011] In Example 5, the subject matter of any one or more of Examples 1-4 optionally includes a mobile cleaning robot that may include at least one sensor including a bump sensor, an optical sensor, a proximity sensor, or an obstacle sensor, and the controller circuitry is configured to detect the presence or absence of one or more obstacles in the docking area further based on signals sensed by the at least one sensor.

[0012] In Example 6, the subject matter of any one or more of Examples 1-5 optionally includes a mobile device in operative communication with the mobile cleaning robot, the mobile device configured to present a notification to a user regarding the detected one or more obstacles, and, in response to the presence of the one or more obstacles in the docking area, generate a recommendation to the user indicating to tidy up the docking area or relocate the docking station.

[0013] In Example 7, the subject matter of Example 6 optionally includes a mobile device that can be configured to generate a graph representing a docking failure rate for each location when one or more of the locations around a current location of the docking station are occupied by an obstacle, and display the graph on a map of the environment, wherein recommendation information indicating to clear the docking area or relocate the docking station is based on the graph.

[0014] In Example 8, the subject matter of Example 7 optionally includes a mobile device that can be configured to calculate a docking failure score based on the graph and generate recommendation information indicating to clear the docking area or relocate the docking station if the docking failure score exceeds a threshold.

[0015] In Example 9, the subject matter of any one or more of Examples 6-8 optionally includes a mobile device that can be configured to present to a user one or more candidate locations for a docking station on a map of an environment and receive a user selection from the one or more candidate locations for placing the docking station.

[0016] In Example 10, the subject matter of Example 9 optionally includes a mobile device that can be configured to generate, for each of one or more candidate locations for the docking station, a graph representing a docking failure rate for each location around the corresponding candidate location when one or more of the respective locations are occupied by an obstacle, and display the graph corresponding to the one or more candidate locations on a map of the environment.

[0017] In Example 11, the subject matter of Example 10 optionally includes a mobile device that can be configured to calculate a docking failure score from the graph corresponding to each of the one or more candidate locations, and present to a user a recommended location based on the docking failure scores corresponding to the one or more candidate locations.

[0018] In Example 12, the subject matter of any one or more of Examples 6-11 includes a mobile device that can be configured to receive an image of a docking station and information regarding an operational status of the docking station, and generate an augmented reality representation that includes a machine-generated operational status indicator of the docking station overlaid on the image of the docking station.

[0019] In Example 13, the subject matter of Example 12 optionally includes operational status of the docking station, which may include status of an ejection unit included in the docking station and configured to remove debris from the mobile cleaning robot.

[0020] In Example 14, the subject matter of any one or more of Examples 6-13 optionally includes a mobile device that can be configured to receive an image of the mobile cleaning robot and information regarding an operating status of the mobile cleaning robot, and generate an augmented reality representation including a machine-generated operating status indicator of the mobile cleaning robot overlaid on the image of the mobile cleaning robot.

[0021] In Example 15, the subject matter of Example 14 optionally includes an operational status of the mobile cleaning robot, which may include the respective status of one or more of the mobile cleaning robot's dust bin, filter, sensor, or battery.

[0022] Example 16 is a mobile robot system comprising: a mobile cleaning robot including a controller circuit and a drive system configured to move the mobile cleaning robot around an environment including a docking area around a docking station; and a mobile device in operative communication with the mobile cleaning robot and configured to generate and display to a user an augmented reality (AR) representation of the docking area, wherein the AR representation includes a machine-generated virtual bounding box overlapping an image of the docking area, and the machine-generated virtual bounding box defines a docking clearance zone around the docking station.

[0023] In Example 17, the subject matter of Example 16 includes a mobile device that can be configured to detect the presence or absence of one or more obstacles from an image of a docking area, and to display the machine-generated virtual bounding box in a first color or render style if the one or more obstacles are present within the machine-generated virtual bounding box, or to display the machine-generated virtual bounding box in a different second color or render style if no obstacles are present within the machine-generated virtual bounding box.

[0024] In Example 18, the subject matter of any one or more of the examples in Examples 16 and 17 optionally includes a mobile device that can be configured to generate recommendation information indicating to clear the docking area or reposition the docking station in response to the presence of one or more obstacles within the machine-generated virtual bounding box.

[0025] In Example 19, the subject matter of any one or more of Examples 16-18 optionally includes a mobile device that can be configured to detect, in a docking area, a status of a wireless communication signal for data communication between the mobile cleaning robot and one or more of the docking station or the mobile device, present the wireless communication signal status to a user, and generate recommendation information indicating to tidy up the docking area or relocate the docking station if the wireless communication signal status satisfies a signal strength condition.

[0026] In Example 20, the subject matter of Example 19 optionally includes wireless communication signal conditions, which may include an indicator of Wi-Fi signal strength.

[0027] Example 21 is a non-transitory machine-readable storage medium including instructions that, when executed by one or more processors of the machine, cause the machine to perform operations including receiving an image of a docking area within a predetermined distance from a docking station for docking a mobile cleaning robot in an environment, detecting from the received image the presence or absence of one or more obstacles in the docking area, and generating a notification to a user regarding the detected presence or absence of the one or more obstacles.

[0028] In Example 22, the subject matter of Example 21 optionally includes instructions to cause the machine to perform operations further including receiving a signal detected by at least one sensor associated with the mobile cleaning robot, the at least one sensor including a bump sensor, an optical sensor, a proximity sensor, or an obstacle sensor; and detecting the presence or absence of one or more obstacles within the docking area further based on the signal detected by the at least one sensor.

[0029] In Example 23, the subject matter of any one or more of Examples 21 and 22 optionally includes wherein the operation of detecting the presence or absence of one or more obstacles in the docking area includes comparing an image of the docking area with a stored image of a docking area without the obstacles.

[0030] In Example 24, the subject matter of any one or more of Examples 21-23 optionally includes instructions to cause the machine to perform operations further including, in response to detecting the presence of one or more obstacles in the docking area, generating recommendation information to a user indicating to clear the docking area or reposition the docking station.

[0031] In Example 25, the subject matter of any one or more of Examples 21-24 optionally includes instructions to cause a machine to perform operations including generating a graph representing a docking failure rate for each location around a current location of the docking station when one or more of the locations are occupied by an obstacle; displaying the graph on a map of the environment; and generating a recommendation based on the graph indicating to clear the docking area or relocate the docking station to a different location.

[0032] In Example 26, the subject matter of Example 25 optionally includes instructions to cause the machine to perform operations further including calculating a docking failure score based on the graph, wherein in response to the docking failure score exceeding a threshold, an operation is performed of generating recommendation information indicating to clear the docking area or relocate the docking station.

[0033] In Example 27, the subject matter of any one or more of Examples 21-26 optionally includes instructions to cause a machine to perform operations including presenting to a user one or more candidate locations for a docking station on a map of an environment; and receiving a user selection from the one or more candidate locations for placing the docking station.

[0034] In Example 28, the subject matter of Example 27 optionally includes instructions to cause the machine to perform operations further including: generating, for each of one or more candidate locations for the docking station, a graph representing a docking failure rate for each location around the corresponding candidate location when one or more of the respective locations are occupied by an obstacle; and displaying the graph corresponding to the one or more candidate locations on a map of the environment.

[0035] In Example 29, the subject matter of Example 28 optionally includes instructions to cause the machine to perform operations further including calculating a docking failure score from the graph corresponding to each of the one or more candidate locations, and presenting to a user a recommended location based on the docking failure scores corresponding to the one or more candidate locations.

[0036] In Example 30, the subject matter of any one or more of Examples 21-29 includes instructions to cause a machine to perform operations further including generating and displaying to a user an augmented reality (AR) representation of the docking area, the AR representation including a machine-generated virtual bounding box overlapping an image of the docking area, the machine-generated virtual bounding box defining a docking clearance zone around the docking station.

[0037] In example 31, the subject matter of example 30 optionally includes acts of generating and displaying the AR representation, which may include displaying the machine-generated virtual bounding box in a first color or render style if one or more obstacles are present within the machine-generated virtual bounding box, or displaying the machine-generated virtual bounding box in a different second color or render style if no obstacles are present within the machine-generated virtual bounding box.

[0038] In Example 32, the subject matter of any one or more of the examples in Examples 30 and 31 optionally includes instructions to cause the machine to perform operations further including detecting, in a docking area, a wireless communication signal condition for data communication between the mobile cleaning robot and one or more of the docking station or mobile device, presenting the wireless communication signal condition to a user, and generating recommendation information indicating to tidy up the docking area or relocate the docking station if the wireless communication signal condition satisfies a signal strength condition.

[0039] This summary is an overview of some of the teachings of the present application and is not an exclusive or exhaustive treatment of the present subject matter. Further details regarding the present subject matter are set forth in the detailed description and appended claims. Other aspects of the present disclosure will become apparent to those skilled in the art upon reading and understanding the following detailed description and viewing the drawings that form a part of the description. The drawings are not to be construed as limiting. The scope of the present disclosure is defined by the appended claims and their legal equivalents.

[0040] Various embodiments are illustrated by way of example in the figures of the accompanying drawings. Such embodiments are illustrative and are not intended to be exhaustive or exclusive embodiments of the present subject matter. [Brief explanation of the drawings]

[0041] [Figure 1] FIG. 2 is a side cross-sectional view of the mobile robot. [Figure 2A]FIG. 2 is a bottom view of the mobile robot. [Figure 2B] FIG. 2 is a top perspective view of the mobile robot. [Figure 3] FIG. 1 illustrates an example of a control architecture for operating a mobile cleaning robot. [Figure 4A] FIG. 1 illustrates a communication network in which a mobile cleaning robot operates and an example of data transmission within the network. [Figure 4B] FIG. 1 illustrates an exemplary process for exchanging information between a mobile robot and other robots in a communication network. [Figure 5] FIG. 1 illustrates an example of a docking station for a mobile robot. [Figure 6] FIG. 1 is a block diagram illustrating an example of a mobile robot system for verifying a docking location for docking the mobile robot. [Figure 7A] FIG. 1 illustrates an example of a user interface of a mobile device displaying an augmented reality (AR) representation of a docking area around a docking station. [Figure 7B] FIG. 1 illustrates an example of a user interface of a mobile device displaying an augmented reality (AR) representation of a docking area around a docking station. [Figure 7C] FIG. 1 illustrates an example of a user interface of a mobile device displaying an augmented reality (AR) representation of a docking area around a docking station. [Figure 7D] FIG. 10 illustrates an example of a user interface of a mobile device displaying an AR representation of a docking area along with information about the operating status of the docking station and mobile robot. [Figure 8A] FIG. 10 illustrates an example user interface of a mobile device showing a current dock location and one or more proposed candidate dock locations on an environmental map. [Figure 8B] FIG. 10 illustrates an example user interface of a mobile device showing a current dock location and one or more proposed candidate dock locations on an environmental map. [Figure 9A] FIG. 10 illustrates an example of a user interface of a mobile device showing a heat map of docking failure rates at various locations around a dock location on a map of the environment. [Figure 9B] FIG. 10 illustrates an example of a user interface of a mobile device showing a heat map of docking failure rates around various docking locations on a map of the environment. [Figure 10] 1 is a flow diagram illustrating an example of a method for verifying a docking location for docking a mobile robot. [Figure 11] FIG. 1 is a block diagram illustrating an example machine in which any one or more of the techniques (or methods) described herein may function. DETAILED DESCRIPTION OF THE INVENTION

[0042] The autonomous mobile robot may be controlled locally or remotely to perform missions, such as cleaning missions, for a room or floor area to be cleaned by the mobile cleaning robot. A user may use a remote control device to display a map of the environment, create a cleaning mission on a user interface (UI) of the remote control device, and control the mobile robot to perform the cleaning mission. The mobile robot may perform self-charging at a docking station located in the environment whenever its battery level reaches a sufficiently low value. Additionally, in some examples, the docking station may be a discharge station that includes a receptacle for retrieving debris collected by and stored in the mobile robot. The mobile robot may detect the docking station and navigate until it is docked.

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

[0044] A mobile robot and its working environment are briefly described below with reference to Figures 1-4. According to various embodiments described herein, systems, devices, mobile applications, and methods for scheduling and controlling a mobile robot based on context information and user experience are described with reference to Figures 5-11.

[0045] Example of an autonomous mobile robot 1 and 2A-2B are different views of an example of a mobile robot 100. Referring to FIG. 1, the mobile robot 100 collects debris 105 from a floor surface 10 as the mobile robot 100 traverses the floor surface 10. Referring to FIG. 2A, the mobile robot 100 includes a robot housing infrastructure 108. The housing infrastructure 108 may define a structural perimeter for the mobile robot 100. In some examples, the housing infrastructure 108 includes a housing, a cover, a base plate, and a bumper assembly. The mobile robot 100 is a domestic robot with a small profile so that the mobile robot 100 can fit under furniture in a home. For example, the height H1 (shown in FIG. 1) of the mobile robot 100 relative to the floor surface is, for example, 13 centimeters or less. The mobile robot 100 is also compact. The overall length L1 (shown in FIG. 1 ) and overall width W1 (shown in FIG. 2A ) of the mobile robot 100 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 mobile robot 100.

[0046] The mobile robot 100 includes a drive system 110 including one or more drive wheels. The drive system 110 further includes one or more electric motors including electrically powered portions that form part of an electrical circuit 106. A housing infrastructure 108 supports the electrical circuit 106, which includes at least a controller circuit 109 within the mobile robot 100.

[0047] The drive system 110 is operable to propel the mobile robot 100 across the floor surface 10. The mobile robot 100 can be propelled in a forward drive direction F or a reverse drive direction R. The mobile robot 100 can also be propelled to turn in place or to turn while moving in the forward drive direction F or the reverse drive direction R. In the example shown in FIG. 2A , the mobile robot 100 includes a drive wheel 112 that extends through a bottom 113 of the housing infrastructure 108. The drive wheel 112 is rotated by a motor 114 to move the mobile robot 100 along the floor surface 10. The mobile robot 100 further includes a passive caster wheel 115 that extends through the bottom 113 of the housing infrastructure 108. The caster wheel 115 is unpowered. The drive wheel 112 and the caster wheel 115 cooperate together to support the housing infrastructure 108 above the floor surface 10. For example, the caster wheels 115 are disposed along the rear portion 121 of the housing infrastructure 108 and the drive wheels 112 are disposed in front of the caster wheels 115 .

[0048] 2B, the mobile robot 100 includes a substantially rectangular front portion 122 and a substantially semicircular rear portion 121. The front portion 122 includes side surfaces 150, 152, a front face 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 face 154.

[0049] 1 and 2A-2B, mobile robot 100 is an autonomous mobile floor-cleaning robot that includes a cleaning head assembly 116 (shown in FIG. 2A) operable to clean floor surface 10. For example, mobile robot 100 is a vacuum cleaning robot in which cleaning head assembly 116 is operable to clean floor surface 10 by sucking up debris 105 (shown in FIG. 1) from floor surface 10. Cleaning head assembly 116 includes a cleaning inlet 117 through which debris is collected by mobile robot 100. Cleaning inlet 117 is located at the center of mobile robot 100, e.g., forward of center 162, and is located along front portion 122 of mobile robot 100 between sides 150, 152 of front portion 122.

[0050] The cleaning head assembly 116 includes one or more rotatable members, such as rotatable member 118, driven by a roller motor 120. The rotatable members 118 extend horizontally across a front portion 122 of the mobile robot 100. The rotatable members 118 are disposed along the front portion 122 of the housing infrastructure 108, extending along 75% to 95% of the width of the front portion 122 of the housing infrastructure 108, for example, corresponding to the overall width W1 of the mobile robot 100. As can also be seen with reference to FIG. 1 , the cleaning suction inlets 117 are disposed between the rotatable members 118.

[0051] As shown in FIG. 1 , the rotatable members 118 are rollers that counter-rotate relative to one another. For example, the rotatable members 118 can include front and rear rollers mounted parallel to the floor surface and spaced apart by a small, elongated gap. The rotatable members 118 can be rotatable about parallel horizontal axes 146, 148 (shown in FIG. 2A ) to agitate debris 105 on the floor surface 10 and direct the debris 105 toward and into the cleaning suction inlet 117 and into a suction path 145 (shown in FIG. 1 ) within the mobile robot 100. Referring again to FIG. 2A , the rotatable members 118 can be positioned entirely within the front section 122 of the mobile robot 100. The rotatable members 118 include elastomeric shells that, as they rotate relative to the housing infrastructure 108, contact debris 105 on the floor surface 10 and direct the debris 105 through cleaning suction ports 117 between the rotatable members 118 and into the interior of the mobile robot 100, such as into a dirt bin 124 (shown in FIG. 1 ). The rotatable members 118 also contact the floor surface 10 to agitate the debris 105 on the floor surface 10. In the example shown in FIG. 2A , each of the rotatable members 118, such as the front and rear rollers, may include a pattern of chevron-shaped vanes distributed along its cylindrical exterior, and the vanes of at least one roller may contact the floor surface along the length of the roller and experience a constantly applied frictional force during rotation that is not present in brushes with flexible bristles.

[0052] The rotatable member 118 may have other suitable configurations. In one example, at least one of the front roller and the rear roller may include bristles and / or elongated flexible flaps for agitating the floor surface. In one example, a flapper brush may be rotatably coupled to the cleaning head assembly housing and may include flexible flaps extending radially outward from the core to sweep the floor surface when the roller is rotationally driven. The flaps are configured to prevent stray filaments from tightly wrapping around the core to aid in subsequent filament removal. The flapper brush includes an axial end guard mounted on the core adjacent an end of the outer core surface and configured to prevent wrapped filaments from moving axially from the outer core surface onto the mounting element. The flapper brush may include a plurality of floor cleaning bristles extending radially outward from the core.

[0053] The mobile robot 100 further includes a vacuum system 119 operable to generate an airflow through the cleaning suction opening 117 between the rotatable members 118 and into the dirt bin 124. The vacuum system 119 includes an impeller and a motor that rotates the impeller to generate the airflow. The vacuum system 119 cooperates with the cleaning head assembly 116 to draw debris from the floor surface 10 into the dirt bin 124. In some cases, the airflow generated by the vacuum system 119 generates sufficient force to draw debris 105 on the floor surface 10 upward through the gaps between the rotatable members 118 and into the dirt 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 allowing the debris 105 to be more easily sucked in by the airflow generated by the vacuum system 119.

[0054] The mobile robot 100 further includes brushes 126 (also referred to as side brushes) that rotate about a non-horizontal axis, for example, an axis that forms an angle between 75 and 90 degrees with respect to the floor surface 10. The non-horizontal axis, for example, forms an angle between 75 and 90 degrees with respect to the longitudinal axis of the rotatable member 118. The mobile robot 100 includes a brush motor 128 operably connected to the side brushes 126 for rotating the side brushes 126.

[0055] The brush 126 is a side brush that is offset laterally from the front-to-back axis of the mobile robot 100, thereby extending beyond the periphery of the housing infrastructure 108 of the mobile robot 100. For example, the brush 126 can extend beyond one of the sides 150, 152 of the mobile robot 100, thereby engaging debris on portions of the floor surface 10 that the rotatable member 118 cannot normally reach, such as portions of the floor surface 10 outside the portion directly below the mobile robot 100. The brush 126 is offset forward from the left-to-right axis LA of the mobile robot 100, thereby also extending beyond the front surface 154 of the housing infrastructure 108. As shown in FIG. 2A , the brush 126 extends beyond the side surface 150, corner surface 156, and front surface 154 of the housing infrastructure 108. In some implementations, the horizontal distance D1 that the brush 126 extends beyond the side 150 is at least, e.g., 0.2 centimeters, e.g., at least 0.25 centimeters, at least 0.3 centimeters, at least 0.4 centimeters, at least 0.5 centimeters, at least 1 centimeter, or more. The brush 126 is positioned to contact the floor surface 10 during its rotation, thereby allowing the brush 126 to easily engage debris 105 on the floor surface 10.

[0056] The brush 126 is rotatable about a non-horizontal axis to sweep debris on the floor surface 10 into the cleaning path of the cleaning head assembly 116 as the mobile robot 100 moves. For example, in an example where the mobile robot 100 moves in a forward drive direction F, the brush 126 is rotatable in a clockwise direction (when viewed from above the mobile robot 100) so that debris contacted by the brush 126 moves toward the cleaning head assembly and toward the portion of the floor surface 10 in front of the cleaning head assembly 116 in the forward drive direction F. As a result, the cleaning suction port 117 of the mobile robot 100 can collect debris swept up by the brush 126 as the mobile robot 100 moves in the forward drive direction F. In an example where the mobile robot 100 moves in a reverse drive direction R, the brush 126 is rotatable in a counterclockwise direction (when viewed from above the mobile robot 100) so that debris contacted by the brush 126 moves toward the portion of the floor surface 10 behind the cleaning head assembly 116 in the reverse drive direction R. As a result, when the mobile robot 100 moves in the reverse drive direction R, the cleaning suction port 117 of the mobile robot 100 can collect the dirt swept up by the brush 126.

[0057] In addition to the controller circuit 109, the electrical circuit 106 includes, for example, a memory storage element 144 and a sensor system having one or more electrical sensors. The sensor system described herein can generate signals indicative of the current position of the mobile robot 100 and can generate signals indicative of the position of the mobile robot 100 as it travels along the floor surface 10. The controller circuit 109 is configured to execute instructions to perform one or more operations as described herein. The memory storage element 144 is accessible by the controller circuit 109 and is disposed within the housing infrastructure 108. The one or more electrical sensors are configured to detect elements in the environment of the mobile robot 100. For example, as can be seen in FIG. 2A , the sensor system includes cliff sensors 134 disposed along the bottom 113 of the housing infrastructure 108. Each of the cliff sensors 134 is an optical sensor capable of detecting the presence or absence of an object below the optical sensor, such as the floor surface 10. Thus, the cliff sensor 134 can detect obstacles such as steps and tiers below the portion of the mobile robot 100 on which the cliff sensor 134 is disposed and change the direction of the robot accordingly. Further details of the sensor system and controller circuit 109 are described below, such as with reference to FIG. 3.

[0058] 2B , the sensor system includes one or more proximal sensors capable of detecting objects along the floor surface 10 in the vicinity of the mobile robot 100. For example, the sensor system may include proximity sensors 136a, 136b, and 136c disposed proximate the front surface 154 of the housing infrastructure 108. Each of the proximity sensors 136a, 136b, and 136c faces outward from the front surface 154 of the housing infrastructure 108 and includes an optical sensor capable of detecting the presence or absence of an object in front of the optical sensor itself. For example, detectable objects include obstacles such as furniture, walls, people, and other objects in the environment of the mobile robot 100. In some examples, the proximity sensors may detect the type and condition of flooring.

[0059] The sensor system includes a bumper system including a bumper 138 and one or more collision sensors that detect contact between the bumper 138 and an obstacle in the environment. The bumper 138 forms part of the housing infrastructure 108. For example, the bumper 138 can form the side surfaces 150, 152 as well as the front surface 154. The sensor system can include, for example, collision sensors 139a, 139b. The collision sensors 139a, 139b can include break beam sensors, capacitance sensors, or other sensors that can detect contact between the mobile robot 100, such as the bumper 138, and an object in the environment. In some implementations, the collision sensor 139a can be used to detect movement of the bumper 138 along a front-to-back axis FA (shown in FIG. 2A ) of the mobile robot 100, and the collision sensor 139b can be used to detect movement of the bumper 138 along a left-to-right axis LA (shown in FIG. 2A ) of the mobile robot 100. The proximity sensors 136a, 136b, 136c can detect an object before the mobile robot 100 comes into contact with the object, and the collision sensors 139a, 139b can detect an object coming into contact with the bumper 138, for example, in response to the mobile robot 100 coming into contact with the object.

[0060] The sensor system includes one or more obstacle-tracking sensors. For example, the mobile robot 100 can include an obstacle-tracking sensor 141 along the side 150. The obstacle-tracking sensor 141 includes an optical sensor that faces outward from the side 150 of the housing infrastructure 108 and can detect the presence or absence of an object adjacent to the side 150 of the housing infrastructure 108. The obstacle-tracking sensor 141 can emit a light beam horizontally in a direction perpendicular to the forward drive direction F of the mobile robot 100 and perpendicular to the side 150 of the mobile robot 100. For example, detectable objects include obstacles such as furniture, walls, people, and other objects in the environment of the mobile robot 100. In some implementations, the sensor system can include an obstacle-tracking sensor along the side 152, which can detect the presence or absence of an object adjacent to the side 152. The obstacle-tracking sensor 141 along the side 150 is a right obstacle-tracking sensor, and the obstacle-tracking sensor along the side 152 is a left obstacle-tracking sensor. One or more obstacle-tracking sensors, including obstacle-tracking sensor 141, may also act as obstacle detection sensors, for example, similar to the proximity sensors described herein, where the left obstacle-tracking sensor may be used to determine the distance between the mobile robot 100 and an object, e.g., a surface, on the left side of the mobile robot 100, and the right obstacle-tracking sensor may be used to determine the distance between the mobile robot 100 and an object, e.g., a surface, on the right side of the mobile robot 100.

[0061] In some implementations, at least some of the proximity sensors 136a, 136b, 136c and each of the obstacle-following sensors 141 include an optical emitter and an optical detector. The optical emitter emits a beam of light outward from the mobile robot 100, e.g., horizontally, and the optical detector detects reflections of the beam of light reflected off objects near the mobile robot 100. The mobile robot 100 can determine, for example, using the controller circuitry 109, the time of flight of the beam of light and thereby determine the distance between the optical detector and the object, and therefore the distance between the mobile robot 100 and the object.

[0062] In some implementations, the proximity sensor 136a includes an optical detector 180 and multiple optical emitters 182, 184. One of the optical emitters 182, 184 can be positioned to send a light beam outward and downward, and the other of the optical emitters 182, 184 can be positioned to send a light beam outward and upward. The optical detector 180 can detect reflections or scattering from the light beam. In some implementations, the optical detector 180 is an imaging sensor, a camera, or some other type of detection device for detecting optical signals. In some implementations, the light beam illuminates a horizontal line along a vertical plane in front of the mobile robot 100. In some implementations, each of the optical emitters 182, 184 emits a fan-shaped light beam outward toward an obstacle surface, causing a one-dimensional grid of points to appear on one or more obstacle surfaces. The one-dimensional grid of points can be arranged on a line extending horizontally. In some implementations, the grid of points can extend across multiple obstacle surfaces, for example, multiple obstacle surfaces adjacent to one another. Optical detector 180 can capture an image representing the grid of points formed by optical emitter 182 and the grid of points formed by optical emitter 184. Based on the size of the points in the image, mobile robot 100 can determine the distance of the object on which the points appear relative to optical detector 180, e.g., relative to mobile robot 100. Mobile robot 100 can make this determination for each point, thus enabling mobile robot 100 to determine the shape of the object on which the points appear. Furthermore, if multiple objects are in front of mobile robot 100, mobile robot 100 can determine the shape of each of the objects. In some implementations, the objects can include one or more objects offset laterally from the portion of floor surface 10 in front of mobile robot 100.

[0063] The sensor system further includes an image capturing device 140, e.g., a camera, pointed toward the top 142 of the housing infrastructure 108. The image capturing device 140 generates digital images of the mobile robot 100's environment as the mobile robot 100 moves around on the floor surface 10. The image capturing device 140 can be angled in a particular direction. In one example, the image capturing device 140 is angled upward, for example, at an angle between 30 and 80 degrees from the floor surface 10 on which the mobile robot 100 is traveling. When the camera is angled upward, it can capture images of the walls of the environment, thereby allowing elements corresponding to objects on the walls to be used for localization. In some examples, the image capturing device 140 can be pointed forward (not tilted).

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

[0065] The sensor system may further include sensors for tracking the distance traveled by the mobile robot 100. For example, the sensor system may include encoders associated with the motors 114 for the drive wheels 112, which may track the distance traveled by the mobile robot 100. In some implementations, the sensor system includes an optical sensor facing downward toward the floor surface. The optical sensor may be an optical mouse sensor. For example, the optical sensor may be positioned to send light through the bottom of the mobile robot 100 toward the floor surface 10. The optical sensor may detect reflections of light and may detect the distance traveled by the mobile robot 100 based on changes in floor elements as the mobile robot 100 travels along the floor surface 10.

[0066] The controller circuit 109 uses data collected by the sensors of the sensor system to control the navigation behavior of the mobile robot 100 during a mission. For example, the controller circuit 109 uses sensor data collected by the mobile robot's 100's obstacle detection sensors, such as the cliff sensor 134, the proximity sensors 136a, 136b, and 136c, and the collision sensors 139a and 139b, to enable the mobile robot 100 to avoid obstacles or prevent falling down stairs in the mobile robot's 100's environment during a mission. In some examples, the controller circuit 109 uses information about the environment, such as a map of the environment, to control the navigation behavior of the mobile robot 100. With proper navigation, the mobile robot 100 can reach a target location or complete a coverage mission as efficiently and reliably as possible.

[0067] The sensor data can be used by the controller circuit 109 for simultaneous localization and mapping (SLAM) techniques, in which the controller circuit 109 extracts elements of the environment represented by the sensor data and creates a map of the floor surface 10 of the environment. The sensor data collected by the image capture device 140 can be used for techniques such as vision-based SLAM (VSLAM), in which the controller circuit 109 extracts visual elements corresponding to objects in the environment and uses these visual elements to create a map. As the controller circuit 109 moves the mobile robot 100 around the floor surface 10 during a mission, it uses SLAM techniques to detect elements represented in the collected sensor data and determine the location of the mobile robot 100 within a map by comparing the elements with pre-stored elements. A map formed from the sensor data can indicate the locations of traversable and non-traversable spaces within the environment. For example, the locations of obstacles are indicated on the map as non-traversable spaces, and the locations of open floor spaces are indicated on the map as traversable spaces.

[0068] Sensor data collected by any of the sensors can be stored in the memory storage element 144. Additionally, other data generated for the SLAM technique, including cartography data forming a map, can be stored in the memory storage element 144. This data generated during a mission can include persistent data generated during the mission and usable during further missions. For example, the mission can be a first mission, and the further mission can be a second mission occurring after the first mission. In addition to storing software for causing the mobile robot 100 to perform its behavior, the memory storage element 144 stores sensor data or data obtained by processing the sensor data from one mission to another for access by the controller circuit 109. For example, the map can be a persistent map usable by the controller circuit 109 of the mobile robot 100 to navigate the mobile robot 100 around on the floor surface 10 and updatable from one mission to another. According to various embodiments described herein, the persistent map can be updated in response to instruction commands received from a user. The controller circuit 109 can modify subsequent or future navigation behavior of the mobile robot 100 according to the updated persistent map, such as by modifying the planned path or updating an obstacle avoidance strategy.

[0069] The persistent data, including the persistent map, enables the mobile robot 100 to efficiently clean the floor surface 10. For example, the persistent map enables the controller circuit 109 to navigate the mobile robot 100 toward open floor spaces and avoid impassable spaces. Additionally, for future missions, the controller circuit 109 can use the persistent map to plan the maneuvering of the mobile robot 100 within the environment to optimize the path used during the mission.

[0070] In some embodiments, the mobile robot 100 can include a light indicator system 137 located on the top 142 of the mobile robot 100. The light indicator system 137 can include a light source located within a lid 147 that covers the trash bin 124 (shown in FIG. 2A). The light source can be positioned to send light around the perimeter of the lid 147. The light source is positioned so that it can illuminate any portion of a continuous loop 143 on the top 142 of the mobile robot 100. The continuous loop 143 is located on a recessed portion of the top 142 of the mobile robot 100, allowing the light source to illuminate the surface of the mobile robot 100 as the mobile robot 100 operates.

[0071] 3 illustrates an example control architecture 300 for operating a mobile cleaning robot. A controller circuit 109 can be communicatively coupled to various subsystems of the mobile robot 100, including a communication system 305, a cleaning system 310, a drive system 110, and a sensor system 320. The controller circuit 109 includes a memory storage element 144 that holds data and instructions for processing by a processor 324. The processor 324 receives program instructions and feedback data from the memory storage element 144, performs logical operations required by the program instructions, and generates command signals for operating each subsystem component of the mobile robot 100. An input / output unit 326 sends command signals and receives feedback from the various illustrated components.

[0072] The communication system 305 may include a beacon communication module 306 and a wireless communication module 307. The beacon communication module 306 may be communicatively coupled to the controller circuit 109. In some embodiments, the beacon communication module 306 is operable to send and receive signals to and from remote devices. For example, the beacon communication module 306 may detect steering signals projected from an emitter of a steering or virtual wall beacon or a homing signal projected from an emitter of a docking station. [Patent Document 1] , [Patent Document 2] , [Patent Document 3] , and [Patent Document 4] (incorporated herein by reference in its entirety) describes docking, confinement, home base, and homing techniques. [Patent Document 5] As described in (which is incorporated by reference in its entirety), the wireless communication module 307 facilitates communication of information representative of the status of the mobile robot 100 with one or more mobile devices (e.g., mobile device 404 shown in FIG. 4A) over a suitable wireless network (e.g., a wireless local area network). Further details of the communication system 305 are described below, such as with reference to FIG. 4A.

[0073] The cleaning system 310 may include a roller motor 120, a brush motor 128 that drives the side brushes 126, and a suction fan motor 316 that powers the vacuum system 119. The cleaning system 310 further includes a plurality of motor sensors 317 that monitor the operation of the roller motor 120, the brush motor 128, and the suction fan motor 316 to facilitate closed-loop control of the motors by the controller circuit 109. In some implementations, the roller motor 120 is operated by the controller circuit 109 (or a suitable microcontroller) to drive each roller (e.g., rotatable member 118) according to a particular speed setting via closed-loop pulse-width modulation (PWM) techniques, where a feedback signal is received from the motor sensor 317 that monitors a signal indicative of the rotational speed of the roller motor 120. For example, such a motor sensor 317 may be provided in the form of a motor current sensor (e.g., a shunt resistor, a current-sensing transformer, and / or a Hall-effect current sensor).

[0074] The drive system 110 may include drive wheel motors 114 for operating the drive wheels 112 in response to drive commands or control signals from the controller circuit 109, as well as a plurality of drive motor sensors 161 for facilitating closed-loop control of the drive wheels (e.g., via appropriate PWM techniques as described above). In some implementations, a microcontroller assigned to the drive system 110 is configured to interpret drive commands having x, y, and θ components. The controller circuit 109 may issue individual control signals to the drive wheel motors 114. In either case, the controller circuit 109 can maneuver the mobile robot 100 in either direction across a cleaning surface by independently controlling the rotational speed and direction of each drive wheel 112 via the drive wheel motors 114.

[0075] The controller circuit 109 can operate the drive system 110 in response to signals received from the sensor system 320. For example, the controller circuit 109 can operate the drive system 110 to change the direction of the mobile robot 100 to avoid obstacles encountered while maneuvering a floor surface. In another example, if the mobile robot 100 becomes stuck or entangled during use, the controller circuit 109 can operate the drive system 110 according to one or more escape behaviors. To achieve reliable autonomous movement, the sensor system 320 can include several different types of sensors that can be used in combination with each other to enable the mobile robot 100 to make intelligent decisions about a particular environment. By way of example and not limitation, the sensor system 320 can include one or more of the following: a proximity sensor 336 (e.g., proximity sensors 136a-136c), a cliff sensor 134, a visual sensor 325, such as an image capture device 140 configured to detect elements and landmarks in the operating environment and create a virtual map, such as by using VSLAM technology as described above.

[0076] The sensor system 320 may further include a collision sensor 339 (e.g., collision sensors 139a, 139b) responsive to actuation of the bumper 138. The sensor system 320 may include an inertial measurement unit (IMU) 164 responsive to changes in the position of the mobile robot 100 relative to a vertical axis substantially perpendicular to the floor, detecting when the mobile robot 100 moves up or down across a boundary between floor types, possibly with a difference in height due to a change in flooring type. In some examples, the IMU 164 is a six-axis IMU with a gyro sensor that measures the angular velocity of the mobile robot 100 relative to the vertical axis. However, other suitable configurations are contemplated. For example, the IMU 164 may include an accelerometer that senses the linear acceleration of the mobile robot 100 along the vertical axis. In either case, the output from the IMU 164 is received and processed by the controller circuit 109 to detect discontinuities in the floor surface on which the mobile robot 100 is traveling. Within the context of this disclosure, the terms “flooring discontinuity” and “threshold” refer to an irregularity in the floor surface that is traversable by the mobile robot 100 but that creates a distinct vertical movement event (e.g., an upward or downward “wobble”). The vertical movement event may refer to a portion of the drive system (e.g., one of the drive wheels 112) or the enclosure of the robot housing infrastructure 108, depending on the configuration and placement of the IMU 164. Detecting a flooring threshold or flooring boundary may prompt the controller circuit 109 to anticipate a change in floor type. For example, the mobile robot 100 may experience a noticeable downward pitch when moving from high pile carpet (a soft floor surface) to a tiled floor (a hard floor surface) and an upward wobble when moving vice versa.

[0077] Various other types of sensors, not shown or described in connection with the illustrated example, may be incorporated into sensor system 320 (or any other subsystem) without departing from the scope of this disclosure. Such sensors may serve as obstacle detection units, obstacle detection and obstacle avoidance (ODOA) sensors, wheel drop sensors, obstacle following sensors, stall sensor units, drive wheel encoder units, bumper sensors, etc.

[0078] Example of a communication network 4A illustrates, by way of example and not limitation, a communications network 400A that enables networking between a mobile robot 100 and one or more other devices, such as a mobile device 404, a cloud computing system 406, or another autonomous robot 408 separate from the mobile device 404. The mobile robot 100, the mobile device 404, the robot 408, and the cloud computing system 406 can communicate with each other and send data to and receive data from each other using the communications network 400A. In some implementations, the mobile robot 100, the robot 408, or both the mobile robot 100 and the robot 408 communicate with the mobile device 404 through the cloud computing system 406. Alternatively or additionally, the mobile robot 100, the robot 408, or both the mobile robot 100 and the robot 408 communicate directly with the mobile device 404. Various types and combinations of wireless networks (e.g., Bluetooth, radio frequency, optical-based, etc.) and network architectures (e.g., mesh networks) may be used by the communications network 400A.

[0079] In some implementations, the mobile device 404 shown in FIG. 4A is a remote device and can be linked to the cloud computing system 406, allowing a user to provide input on the mobile device 404. The mobile device 404 can include user input elements such as, for example, one or more of a touchscreen display, buttons, a microphone, a mouse, a keyboard, or other devices that respond to input provided by a user. The mobile device 404 may alternatively or additionally include immersive media (e.g., virtual reality) with which the user interacts to provide user input. In such a case, the mobile device 404 is, for example, a virtual reality headset or a head-mounted display. The user can provide input corresponding to a command to the mobile device 404. In such a case, the mobile device 404 transmits a signal to the cloud computing system 406, causing the cloud computing system 406 to transmit a command signal to the mobile robot 100. In some implementations, the mobile device 404 can present augmented reality images. In some implementations, the mobile device 404 is a smartphone, a laptop computer, a tablet computing device, or other mobile device.

[0080] According to various implementations described herein, the mobile device 404 may include a user interface configured to display a map of the robot environment. Robot paths, such as those identified by a coverage planner of the controller circuit 109, may be displayed on the map. The interface may receive user instructions to modify the environment map, particularly by adding, removing, or otherwise modifying inaccessible zones in the environment, or possibly adding, removing, or otherwise modifying overlapping passage zones in the environment (such as areas requiring repeated cleaning), restricting the robot's passage direction or pattern in parts of the environment, or adding or changing cleaning ranks.

[0081] In some implementations, the communication network 400A can include additional nodes. For example, the nodes of the communication network 400A can include additional robots. Alternatively or additionally, the nodes of the communication network 400A can include networked devices. In some implementations, the networked devices can generate information about the environment. The networked devices can include one or more sensors for detecting elements in the environment, such as acoustic sensors, image capture systems, or other sensors that generate signals from which the elements can be extracted. The networked devices can include home cameras, smart sensors, smart locks, smart thermostats, smart garage door openers, etc.

[0082] In the communication network 400A shown in FIG. 4A and other implementations of the communication network 400A, the wireless link may utilize various communication methods, protocols, etc., such as, for example, Bluetooth class, Wi-Fi, Bluetooth-low-energy also known as BLE, 802.15.4, Worldwide Interoperability for Microwave Access (WiMAX), infrared channels, or satellite bands. In some cases, the wireless link includes any cellular network standard used to communicate between mobile devices, including, but not limited to, standards considered 1G, 2G, 3G, or 4G. The network standard, if utilized, may be considered one or more generations of a mobile communication standard by implementing a specification or standard, such as, for example, a specification maintained by the International Telecommunication Union. The 3G standard, if utilized, may correspond, for example, to the International Mobile Telecommunications-2000 (IMT-2000) specification, and the 4G standard may correspond to the International Mobile Telecommunications Advanced (IMT-Advanced) specification. Examples of cellular network standards include AMPS, GSM, GPRS, UMTS, LTE, LTE Advanced, Mobile WiMAX, and WiMAX-Advanced. Cellular network standards may use various channel access methods, for example, FDMA, TDMA, CDMA, or SDMA.

[0083] 4B illustrates an example process 400B for exchanging information between devices in a communication network 400A including a mobile robot 100, a cloud computing system 406, and a mobile device 404. A cleaning mission may be initiated by pressing a button on the mobile robot 100, or may be scheduled for a future time or day. A user may select a set of rooms to clean during the cleaning mission, select a set of areas or zones within the rooms, or command the robot to clean all rooms. A user may select a set of cleaning parameters to use in each room during the cleaning mission.

[0084] During a cleaning mission, the mobile robot 100 tracks its status, including its location, any operational events that occur during cleaning, and the time spent cleaning. The mobile robot 100 sends status data (e.g., one or more of location data, operational event data, and time data) to the cloud computing system 406 (412), which, via its processor 442, calculates a time estimate for the area to be cleaned. For example, a time estimate may be calculated for a room by averaging the actual cleaning times for the room collected during multiple (e.g., two or more) previous cleaning missions for the room. The cloud computing system 406 sends the time estimate data along with the robot status data to the mobile device 404 (416). The mobile device 404, via its processor 444, presents the robot status data and the time estimate data on a display (418). The robot status data and the time estimate data may be presented on the mobile device's display as any of several graphical representations of an editable mission timeline and / or a mapping interface. In some examples, the mobile robot 100 can communicate directly with the mobile device 404 .

[0085] The user 402 may view (420) the robot status data and time estimate data on the display and enter (422) new cleaning parameters or process the order or identification of rooms to be cleaned. The user 402 may, for example, delete a room from the cleaning schedule of the mobile robot 100. In another example, the user 402 may, for example, select an edge cleaning mode or a thorough cleaning mode for a room to be cleaned (402). The display of the mobile device 404 is updated (424) when the user enters changes to the cleaning parameters or cleaning schedule. For example, if the user changes the cleaning parameters from single-pass cleaning to dual-pass cleaning, the system updates the estimated time to provide an estimate based on the new parameters. In this example of single-pass cleaning versus dual-pass cleaning, the estimate is approximately doubled. In another example, if the user deletes a room from the cleaning schedule, the total time estimate is reduced by approximately the time required to clean the deleted room. The cloud computing system 406 calculates (426) a time estimate for the area to be cleaned based on input from the user 402, which is then sent (428) back to the mobile device 404 (e.g., by wireless transmission, applying a protocol, broadcasting a wireless transmission) and displayed. Furthermore, data regarding the calculated (426) time estimate is sent (446) to the robot's controller 430. Based on input from the user 402 received by the mobile robot's controller 430, the controller 430 generates (432) a command signal. The command signal instructs the mobile robot 100 to perform (434) a behavior. This behavior may be a cleaning behavior. As the cleaning behavior is performed, the controller continues to track (410) the robot's status, including the robot's location, any operational events that occur during cleaning, and the time spent cleaning. In some examples, live updates regarding the robot's status may additionally be provided to the mobile device or a consumer electronics system (e.g., an interactive speaker system) via push notifications.

[0086] When the controller 430 executes (434) a behavior, it determines (436) whether the received command signal includes a command to complete the cleaning mission. If the command signal includes a command to complete the cleaning mission, the robot is instructed to return to its docking station and, upon return, sends information that enables the cloud computing system 406 to generate (438) a mission summary that is sent to and displayed by the mobile device 404 (440). The mission summary may include a timeline and / or a map. The timeline may display the rooms cleaned, the time spent cleaning each room, the operational events tracked in each room, etc. The map may display the rooms cleaned, the operational events tracked in each room, the type of cleaning performed in each room (e.g., sweeping or mopping), etc.

[0087] Operations for process 400B and other processes described herein can be performed in a distributed manner. For example, the cloud computing system 406, the mobile robot 100, and the mobile device 404 may coordinate to perform one or more of the operations. Operations described as being performed by one of the cloud computing system 406, the mobile robot 100, and the mobile device 404 are, in some implementations, at least partially performed by two or all of the cloud computing system 406, the mobile robot 100, and the mobile device 404.

[0088] Docking Station and Dock Plan Examples FIG. 5 shows an example of a docking station 500 (also referred to as a robot dock or dock) for docking the mobile robot 100. The docking station 500 may include one or more different distinguishable fiducial markers 540A and 540B. The docking station 500 may include or be connected to a power source and may include a docking port 560 having charging contacts 522A and 522B operable to charge the battery of the mobile robot 100 when the robot 100 is docked to the docking station 500. In some examples, the docking station 500 may be a discharge station and may include a receptacle 570 for retrieving waste collected by and stored in the robot 100. In some examples, the docking station 500 may be wired or wirelessly connected to a communications network, such as a cloud computing system 406, to enable or facilitate data transmission to and from the mobile robot 100 and / or a mobile device 404.

[0089] Fiducial markers 540A and 540B may be configured to define the pose (e.g., position and / or orientation) of docking station 500. Fiducial markers 540A and 540B may have a predetermined spatial relationship to each other and / or to a fiducial on docking station 500 and / or to a plane directly below docking station 500. Mobile robot 100 may use its pose sensor assembly (e.g., a camera or infrared sensor) to detect fiducial markers 540A and 540B and determine the pose of docking station 500. In some examples, mobile robot 100 may map a docking path from the current location of mobile robot 100 to docking station 500. The docking path may be used to instruct the mobile robot 100 to maneuver to the docking station 500, whereby the mobile robot 100 may connect to the locks, clamps, or detents 520A and 520B, or the electrical contacts 522A and 522B of the docking port 560, to charge the battery.

[0090] In some examples, the docking path may be used to instruct the robot 100 to align its imaginary path with a docking lane or path, such as a discharge collar 510 on the docking station 500, thereby causing the dock to move waste from the mobile robot 100 to a receptacle 570 on the docking station 500. The discharge collar 510 (or mating collar) may be positioned such that the mobile robot 100 is positioned above the discharge collar 510. The fiducial markers 540A and 540B may be any element configured to be used for pose detection. For example, the fiducial markers 540A and 540B may be a photogrammetry target, two or more lights such as LEDs, a spatially recognizable pattern, or a barcode.

[0091] When it is time to recharge and / or empty trash, the mobile robot 100 may determine the location of the docking station 500 on a map created by or stored in the mobile robot 100 and navigate to a docking area around the docking station 500. From there, the mobile robot 100 may determine the orientation of the mobile docking station 500 relative to the mobile robot 100 and plan a direct, unobstructed docking path to the docking station 500. As shown in FIG. 5 , the mobile robot 100 may travel forward along a docking lane 550 to the docking station 500. The docking lane 550 may be bounded by outer edges 550A and 550B and has a central axis 550C aligned with the central axis of a docking port 560 into which the mobile robot 100 enters. By approaching the docking station 500 within the outer edges 550A and 550B, the mobile robot 100 may properly align its contacts with the docking contacts 522A and 522B, properly align the wheels of the mobile robot 100 with the docking detents 520A and 520B, and / or properly align the robot's imaginary path with the ejection collar 510 of the docking station 500.

[0092] Example of a dock location verification system Various embodiments of systems, devices, and methods for automatically detecting one or more obstacles in a docking area around a docking station and verifying a docking position for docking a mobile robot are described below with reference to FIGS. 6 and 7A-7C. While reference is made herein to a mobile robot 100 performing floor cleaning, the docking verification systems and methods described herein may be used in robots designed for different applications, such as mopping, weeding, transportation, and surveillance, among others. Furthermore, while certain components, modules, and operations may be described as being implemented in and performed by the mobile robot 100, a user, a computing device, or another entity, in some implementations, these operations may be performed by an entity other than the described entity. For example, operations performed by the mobile robot 100 may be performed by the cloud computing system 406 or another computing device(s) in some implementations. In other examples, operations performed by a user may be performed by a computing device. In some implementations, the cloud computing system 406 does not perform the operations. Instead, other computing devices may perform the operations described as being performed by the cloud computing system 406, and these computing devices may also communicate directly (or indirectly) with each other and with the mobile robot 100. In some implementations, the mobile robot 100 may perform the operations described as being performed by the cloud computing system 406 or the mobile device 404 in addition to the operations described as being performed by the mobile robot 100. Other variations are contemplated. Furthermore, while the methods and processes described herein have been described as including several operations or sub-operations, in other implementations one or more of these operations or sub-operations may be omitted, or additional operations or sub-operations may be added.

[0093] 6 illustrates an example of a mobile robot system 600 for verifying a docking position for docking a mobile robot. The mobile robot system 600 includes a mobile cleaning robot 610 and a docking station 630. In some examples, the mobile robot system 600 further includes a mobile device 620 in operative communication with the mobile cleaning robot 610 and the docking station 630. In some examples, the mobile cleaning robot 610 may communicate with the mobile device 620 through a cloud computing system 406 as described above with reference to FIGS. 4A and 4B.

[0094] A mobile cleaning robot 610, which is one embodiment of the mobile robot 100, may include, among other things, one or more sensors 611, a controller circuit 612, and a drive system 614. The controller circuit 612 may include a docking environment detector 615 and a docking navigator 616 that navigates the mobile cleaning robot 610 to a docking station 630 (an embodiment of the docking station 500). As shown in FIG. 6, the controller circuit 612 may be electrically coupled to one or more sensors 611, such as one or more sensors included in the sensor system 320 of the mobile robot 100 as described above with reference to FIGS. 2A and 2B and 3. The docking environment detector 615 may use the output of the one or more sensors 611 to detect conditions in a docking area around the docking station 630 and verify a docking position for docking the mobile cleaning robot 610. In one example, the one or more sensors 611 may include an imaging sensor, a camera, or some other type of detection device. The imaging sensor or camera can take images of the docking area around the docking station 630, such as when the mobile cleaning robot 610 enters the docking area and when the docking station 630 is within the field of view of the imaging sensor or camera. In one example, images of the docking area can be taken during a handoff between a far docking process and a near docking process. Far docking occurs, for example, when the mobile cleaning robot 610 navigates to the docking area based on a first portion of the image of the docking station. A subsequent near docking process occurs when the mobile cleaning robot 610 views a different second portion of the docking station image at higher resolution to locate fiducials on the docking station 630 (e.g., fiducial markers 540A and 540B in FIG. 5 ) and fine-tunes the position and attitude of the mobile robot relative to the docking station to ensure successful docking.The docking environment detector 615 may detect from the image of the docking area conditions in the docking area that impede or interfere with the docking behavior of the mobile cleaning robot, such as the presence or absence of one or more obstacles in the docking area.

[0095] Various image-based obstacle detection methods are contemplated. In one example, the docking environment detector 615 may detect one or more obstacles in the docking area based on a comparison of an image of the docking area to a template image representing an obstacle-free docking area around the docking station. The template image may be pre-generated and stored on the mobile device 620 or on the cloud computing system 406 accessible by the mobile cleaning robot 610 and / or the mobile device 620. In some examples, the docking environment detector 615 may further determine the location of the one or more obstacles relative to the docking station or a known reference location based on a comparison of the docking area image to the template image.

[0096] In some examples, the docking environment detector 615 may additionally or alternatively detect one or more obstacles in the docking area using output from one or more sensors other than an imaging sensor or camera, such as a bump sensor, an optical sensor, a proximity sensor, or an obstacle sensor, among others. For example, to detect the presence or absence of one or more obstacles in the docking area, the mobile cleaning robot 610 may traverse the docking area following a specific path with a specific target area, e.g., in response to a user's command via the mobile device 620 or according to a pre-programmed docking detection routine. The output from the bumper sensor (bumper sensors 339 or 139A and 139B) may indicate whether the docking area is obstructed.

[0097] As an alternative to images taken from the mobile cleaning robot 610 by an imaging sensor, in some examples, the docking environment detector 615 may receive images of the docking area from another device, such as a mobile device 620 or camera, installed in the environment and having a field of view covering the docking area around the docking station 630. The mobile device 620 is an embodiment of the mobile device 404 and may be a smartphone, personal digital assistant, laptop computer, tablet, smartwatch, or other portable computing device. As shown in FIG. 6 , the mobile device 620 may include an imaging sensor, such as a camera, mounted thereon. A user may use the mobile device 620 to take images of the docking area around the docking station 630, such as during initial setup of the mobile cleaning robot 610 and the docking station 630, or after the docking station 630 has been moved to a new location in the environment. The docking environment detector 615 may detect the presence or absence of one or more obstacles in the docking area from the received images based on, for example, a comparison of the images of the docking area with a template image representing a docking area without obstacles, as described above.

[0098] The controller circuit 612 may generate mission control signals to the drive system 614 (an embodiment of the drive system 110) to move the mobile cleaning robot 610 into an environment and perform a cleaning mission. When the mobile cleaning robot 610 needs to recharge its batteries and / or empty debris, the docking navigator 616 may steer the mobile cleaning robot 610 to the docking station 630 if the docking area conditions meet certain conditions, such as the docking area or a portion thereof (e.g., the docking lane 550) being free of obstacles during the docking process. If the docking environment detector 615 determines that the docking area does not meet certain conditions, such as the docking area or a portion thereof (e.g., the docking lane 550) being obstructed by one or more obstacles, an indicator of the obstructed docking area may be provided to the mobile device directly from the mobile cleaning robot 610 or through the cloud computing system 406. The mobile device 620 may generate a notification to the user about the obstructed docking area, such as a message or other formatted alert, via the user interface 622 of the mobile device 620. In some examples, recommendations for clearing an obstructed docking area, such as recommendations to clear the docking area or reposition the docking station to a different location, may be displayed on the user interface 622 before the mobile cleaning robot 610 enters the docking station 630. In some examples, additional information or help regarding robot docking may be provided to the user, such as in the form of a link to a frequently asked questions (FAQ) or knowledge base, such as maintained on the cloud computing system 406.

[0099] In some examples, the docking area conditions detected by the docking environment detector 615 may additionally or alternatively be used to steer the mobile cleaning robot 610 away from the docking station for a cleaning mission. If the docking area conditions meet certain conditions (e.g., an unobstructed docking area with sufficient space), the docking navigator 616 may steer the mobile cleaning robot 610 away from the docking station 500. If the docking area does not meet certain conditions (e.g., an obstructed docking area), the user may be notified and possibly recommended to clear the docking area or relocate the docking station to a different location before the mobile cleaning robot 610 leaves the docking station 630.

[0100] The mobile device 620 may include a user interface 622 that enables a user to create or modify one or more cleaning missions or perform specific tasks, and to monitor the progress of the missions or tasks and the operating status of the mobile cleaning robot 610. The user interface 622 may present the user with the detected status of the docking area (e.g., whether the docking area is obstructed) and, as described above, recommendations or notifications for clearing the obstruction in the docking area. The mobile device 620 may include an augmented reality (AR) module 626 configured to generate an AR representation of the docking area. The AR representation provides the user with an interactive experience of a real-world environment (e.g., a docking station or the docking area around it) where the object exists in the real world, enhanced by machine-generated perceptual information such as graphs, text, or other visual or auditory information. In one example, the AR module 626 may generate a virtual bounding box that overlaps with an image of the docking area (e.g., generated by an imaging sensor of the mobile cleaning robot 610 or the imaging sensor 624 of the mobile device 620). A machine-generated virtual bounding box defines a docking clearance zone around the docking station. The location and dimensions of the bounding box (e.g., the shape and / or boundaries of the bounding box relative to the docking station) may be provided by a user, such as via the user interface 622. The virtual bounding box may be displayed on the user interface 622 in a different color, render style, or presentation mode to visually distinguish obstructed docking areas from unobstructed docking areas. Instead of directly displaying the bounding box (e.g., boundaries), in some examples, the AR module 626 may highlight or otherwise mark obstacles in the docking area that fall within the field of view of the camera of the mobile device 620 to distinguish the interior and exterior of the virtual bounding box without explicitly displaying the boundaries of the bounding box.

[0101] 7A , a user interface of a mobile device (an example of a mobile device 620) displays an AR representation 700A of a docking area around a docking station for a mobile robot. The AR representation 700A includes an image of a docking area 710 around a docking station 714 (an example of a docking station 630). The image can be taken by a camera mounted on the mobile device. The docking station 714 may be used to recharge and / or unload the mobile cleaning robot 711. The AR representation 700A also includes a machine-generated virtual bounding box 712 (as generated by the mobile device 620) that overlaps the image of the docking area 710. The virtual bounding box 712 defines a docking clearance zone around the docking station 714. A user may provide information regarding the location and dimensions of the bounding box 712 (e.g., the shape and / or boundaries of the bounding box relative to the docking station) via the user interface 622. For example, a user may draw a bounding box 712 on a user interface with boundaries approximately 0.5 meters to the left, approximately 0.5 meters to the right, and approximately 1 meter in front of a docking station 714 positioned against a wall. In some examples, the location and dimensions of the bounding box 712 may be determined automatically based on, for example, the size and shape of the mobile cleaning robot 711, the size and shape of the docking port 560, or the docking route and pattern, among other things. In some examples, the mobile device 620 may determine the location and dimensions of the bounding box 712 based on a graph representing a docking failure rate, as described below with reference to FIG. 9A .

[0102] In this example, no obstacles are detected (e.g., by the docking environment detector 615) within the docking clearance zone inside the boundary of the virtual bounding box 712. Therefore, the virtual bounding box 712 is displayed in green to indicate such a condition, possibly along with a “Good Dock Location” push notification 718 indicating such a condition. The user may then instruct the mobile cleaning robot 711 to proceed to the docking station 714 by clicking a “Continue” button. In one example, if a docking environment verification is performed during the initial setup of the docking station 714 and associated mobile cleaning robot, clicking the “Continue” button may display a new screen 719. The user may be prompted to provide location information for the docking station 714, such as the floor name and room / area name.

[0103] Referring to FIG. 7B, the user interface of FIG. 7B illustrates another example of an AR representation 700B shown on a user interface of a mobile device of a docking area 720 around a docking station 724. The docking station 724 charges a mobile robot 721. The mobile robot 721 may be a different type of mobile robot than the mobile robot of FIG. 7A. In this example, an object 726 is detected (e.g., by the docking environment detector 615), and as shown in FIG. 7B, a portion of the object 726 is located within a docking clearance zone defined by a virtual bounding box 722. Therefore, the virtual bounding box 722 is displayed in red to indicate that the docking area is obstructed. A warning message 728 may be displayed to the user stating, "Need more space around dock." In one example, when the user clicks the warning message 728 (or other UI control button on the screen), additional information may be presented to the user on a different screen 729, including recommendations to clean the docking area or move the docking station to a different location. In one example, the user may be displayed a link to an FAQ or knowledge base (such as maintained in the cloud computing system 406). The user may take one or more of the recommended actions or ignore the recommendations and command the mobile robot 712 to proceed to the docking station 724 by clicking a “Continue” button.

[0104] In some examples, a map of the environment may be displayed on a user interface, e.g., in response to a user command, along with one or more suggested alternative locations for the docking station on the map. FIGS. 8A and 8B show examples of a user interface of a mobile device showing a current dock location and one or more proposed candidate dock locations on a map of the environment. A current mobile robot location 810 and a current dock location 831 are shown on the map. If the current dock location 831 is determined to be unsuitable for docking (e.g., obstructed by an obstacle, as shown in FIG. 7B ), the mobile device 620 may determine one or more alternative locations for the docking station and display the one or more alternative locations on the map. FIG. 8A shows a candidate dock location 832 and recommendation information indicating relocating the docking station from the current location 831 to the candidate dock location 832. FIG. 8B shows two candidate dock locations 832 and 833. A user may select one of the candidate dock locations, such as by clicking a location on the map or using a UI control button on the user interface. In some examples, one or more dock locations to avoid may also be displayed on the map, such as avoid location 841. The avoid locations may be marked (e.g., in red) on the map to encourage the user to avoid placing a docking station at those locations.

[0105] Referring again to FIG. 6 , the mobile device 620 may include a dock location identification module 629 configured to automatically identify one or more candidate dock locations within the environment, such as candidate dock locations 832 and 833. Identification of candidate dock locations may be based on heuristics. For example, candidate dock locations should be within a certain range of a detected power outlet, near or against a wall, away from corners, away from doorways, away from high-traffic areas, and / or away from carpet transitions. In some examples, the dock location identification module 629 may identify candidate dock locations as being in or near the center of an area typically cleaned. Such a location may help reduce average mission time, especially when the mobile robot needs to visit the docking station multiple times during an automatic draining or recharging mission. In some examples, the dock location identification module 629 may identify candidate locations as being away from high-occupancy areas, such as rooms or areas where people frequently visit or linger. Low occupancy areas are generally preferable to high occupancy areas for docking placement because they may help reduce disturbances such as noise generated during automatic ejection. In one example, the dock location identification module 629 may identify candidate locations as locations away from windows or other sources (e.g., light or infrared sources) that may interfere with the proper operation of the mobile robot's sensors.

[0106] In some examples, the dock location identification module 629 may identify one or more candidate dock locations based on the docking performance of the mobile robot around one or more of the candidate locations. In one example, the dock location identification module 629 identifies various locations {P1, P2, ..., P n}. A graph showing the docking failure rate (DFR) at a particular location (e.g., P i The DFR at (x,y) is the location P iThe graph shows the probability of not being able to properly dock at the docking station if the location {P1, P2, ..., P n}. In one example, the DFR values ​​may be clustered and shown in a graph. In another example, the graph may be represented in the form of a heat map. Referring to FIG. 9A, a heat map 900 of docking locations may be generated by aligning multiple maps across multiple mobile robots (or multiple docking instances by the same mobile robot) in a coordinate system, whereby a docking station 930 is located at the origin (0,0) of the coordinate system. A location P within a docking area around a docking location i About Location P i First docking failure rate DFR when is occupied by an obstacle i (1) may be calculated. i Second docking failure rate (DFR) when there are no obstacles i (2) may be calculated. i The change in DFR in i (1) to DFR i (2) is subtracted, that is, △DFR i = DFR i (1) - DFR i (2) △DFR may be calculated. i Location P i The example shown in Figure 9A illustrates the effect of obstacles at multiple locations {P1, P2, ..., P n}, where the ΔDFR values ​​are represented by a change in color, either by hue or intensity. i The value is P i indicates an increase in the docking failure rate when the obstacle is occupied. i Location P associated with the value i is a factor that determines the docking performance of a mobile robot. iDifferent locations with values ​​P j It is a more important place.

[0107] Different sub-regions around the docking station may be identified, each with a different ΔDFR value or value range. For example, locations within sub-region 941 have a ΔDFR value substantially equal to zero, indicating that obstacles presented at those locations have no or minimal impact on the mobile robot's docking performance. Locations within sub-region 942 have a lower ΔDFR value than locations within sub-region 943, which in turn have a lower ΔDFR value than locations within sub-region 944. FIG. 9A shows an example of a bounding box 910 defined by boundaries approximately 0.5 meters to the left (L), approximately 0.5 meters to the right (R), and approximately 1 meter to the front (F). The bounding box 910 covers the majority of locations associated with positive ΔDFR values ​​(i.e., a high docking failure rate) if any of the locations are occupied by obstacles. Based on the heat map 900, the user may define a bounding box for detecting one or more obstacles around the docking station, such as the bounding box 712 or 722 shown in FIGS. 7A and 7B.

[0108] In some examples, the heat map 900 may be used to distinguish obstacles that are more problematic from obstacles that are less problematic for docking. For example, an obstacle detected in sub-region 944 may be more likely to cause a docking failure than an obstacle detected in sub-region 943, which may be more likely to cause a docking failure than an obstacle detected in sub-region 942. Recommendations for clearing the docking area may be provided to the user based on the identified sub-regions (e.g., sub-regions 941-944) and their coordinate locations on the heat map 900. For example, if a sofa or portion thereof is detected in sub-region 943, a recommendation may be generated to the user indicating, for example, to move the sofa 10 inches to the left from the docking station. In some examples, different levels of alerts may be generated to the user based on the location of the detected obstacle. For example, if an obstacle is detected in a high DFR sub-region (e.g., sub-region 944), a higher level of alert may be generated than if an obstacle is detected in a low DFR sub-region (e.g., sub-region 942 or 941). The user may use the heat map 900 shown on the user interface as a guide to clear obstructed docking areas, such as by moving an obstacle detected in a high DFR subregion (e.g., subregion 944) to a low DFR subregion (e.g., subregion 942 or 941).

[0109] The dock location identification module 629 may use a heat map of the current dock location to detect whether the current dock location is suitable for docking. In one example, the dock location identification module 629 uses a comparison of the area around the current dock location to the heat map to determine a docking failure score S DF The docking failure score S DFmay be accumulated across multiple locations and sub-regions of the docking area. A high DFR sub-region (e.g., sub-region 944) may have a higher cumulative S than a low DFR sub-region (e.g., sub-region 942). DF High contribution to cumulative S DF can be compared to a threshold. DF If is lower than the threshold, the current docking position is considered suitable for docking. DF exceeds the threshold, the current dock position is deemed unsuitable for docking, and the user may be presented with a recommendation to move the docking station to an alternative position, such as one of the candidate dock positions 832 or 833 shown in FIG. 8B.

[0110] The dock location identification module 629 may suggest one or more candidate dock locations based on a respective heat map of the one or more candidate dock locations. In one example, the heat map may each represent N candidate dock locations {D1, D2, ..., D N}, for locations along one or more walls in a map of the environment. DF (1), S DF (2), ..., S DF (N)} is the N candidate dock locations {D1, D2, ..., D N} may be calculated from the respective heat maps generated around each of S DF represents the cumulative docking failure rate, so a higher S DF Candidate dock location D with value i is lower than S DF Candidate location D with value J The dock location identification module 629 may be configured to detect a minimum of S DF The positions corresponding to {D1, D2, ..., D N} and present them to the user as recommended dock locations. In some examples, the dock location identification module 629 may select the N candidate locations (or a portion thereof) as S DFThe candidate locations may be ranked in descending or ascending order of value, and the ranked candidate locations may be presented to the user, prompting the user to select a location from the candidate locations. Referring to Figure 9B, the user interface of the mobile device shows a heat map of docking failure rates for several candidate docking locations 832, 833, and 834 on an environment map 800. A heat map of docking failure rates for the current docking location 831 is also shown. Additionally or alternatively, a docking failure score (S) for the current docking location 831 and the candidate docking locations 832, 833, and 834 may be calculated. DF ) may be shown next to each candidate dock location on the map. In this illustrated example, current dock location 831 has an SDF score of 0.68, which is lower than any of candidate dock locations 832, 833, and 834. DF The user must set the minimum S DF A candidate location for dock placement, such as candidate dock location 832 with a value, may be selected by clicking on the location on the map or by using a UI control button on the user interface.

[0111] Referring again to FIG. 6 , the mobile device 620 may include a communication signal condition detector 628 configured to detect wireless communication signal conditions within a region of the environment. The wireless communication signal transmits data between the mobile cleaning robot 610 and one or more of the docking station 630 or the mobile device 620. The wireless communication signal may be generated by a local electronic device and received by a wireless receiver of the mobile cleaning robot 610. As a non-limiting example, the wireless communication signal conditions include Wi-Fi signal strength. In one example, a user may place the mobile device 620 within the docking area to detect wireless communication signal conditions within the docking area, such as during initial setup of the mobile cleaning robot 610 and the docking station 630, or after moving the docking station 630 to a new location within the environment. The detected wireless communication signal conditions (e.g., Wi-Fi signal strength) in the docking area may be presented to the user, such as by being displayed on the user interface 622. Referring to FIG. 7A, wireless communication signal status, such as a Wi-Fi signal strength indicator, may be displayed on the user interface as part of the AR representation of the docking area. In this example, the Wi-Fi signal strength is fair. The Wi-Fi signal strength indicator may be overlaid on the image of the docking area. A push notification 713 reading "OK Wi-Fi Strength" may be displayed to the user. Similarly, FIG. 7B illustrates an example when a strong Wi-Fi signal is detected, such as by a mobile device, in the docking area. A corresponding Wi-Fi signal strength indicator and a push notification 723 reading "Good Wi-Fi Strength" may be displayed along with other information included in AR representation 700B, as described above.

[0112] If a weak wireless communication signal (e.g., weak Wi-Fi signal strength) is detected in the docking area, the mobile device 620 may generate a notification to the user regarding the weak wireless communication signal in the form of a message or alert. In one example, recommendation information, such as a recommendation to move the docking station to a different location with better wireless communication signal coverage, may be displayed on the user interface 622. In some examples, additional information or help regarding robot docking may be provided to the user, such as in the form of a link to a frequently asked questions (FAQ) or knowledge base, such as that maintained in the cloud computing system 406. Referring to FIG. 7C , the user interface of FIG. 7C illustrates an example AR representation 700C similar to AR representation 700A. However, in this example, a weak Wi-Fi signal is detected in the docking area. A corresponding Wi-Fi signal strength indicator and a “Poor Wi-Fi Strength” push notification 733 may be displayed along with the other representations included in AR representation 700C. The user may be presented with recommendations to improve Wi-Fi signal strength (e.g., move the docking station to a different location) and possibly a link to a FAQ or knowledge base maintained on the cloud computing system 406. The user may take one or more of the recommended actions or ignore the recommendations and instruct the mobile cleaning robot 711 to proceed to the docking station 714 by clicking a “Continue” button.

[0113] The user may provide information about the docking station 630, such as its location within the environment, via the user interface 622. In one example, the user interface 622 may display a map of the environment, and the user may identify the location of the docking station 630 on the map. During initial setup of the mobile cleaning robot 610 and the docking station 630, after a docking location that meets certain conditions (e.g., no obstructions within the docking area and / or sufficient Wi-Fi coverage) is detected, the mobile device 620 may prompt the user to provide location information of the docking station 630 via the user interface 622, such as the floor name and room / area name. Alternatively, the user may draw, mark, or label the docking location using UI controls on the user interface 622. Labeling the docking location on the map may help the user understand the docking station and the docking process. An example of providing docking location information via a user interface is shown in FIG. 7A.

[0114] 6 , the mobile device 620 may receive information regarding the operational status of the mobile cleaning robot 610 and / or the docking station 630 directly from the respective devices or from the cloud computing system 406 and display such information on the user interface 622. The received operational status information, or a portion thereof, may be included in an AR representation of the docking area. In one example, a user may hold and point the mobile device 620 at the mobile cleaning robot 610 to take an image of the docking area around the docking station 630. The mobile device may include an image processor for recognizing the docking station 630 from the image of the docking area and receiving information regarding the operational status of the docking station 630 as stored in the cloud computing system 406. The operational status of the docking station 630 may include, by way of example and not limitation, the status of a drain bag inside the docking station 630 (e.g., that the drain bag is full) or an estimated time for replacement of a component such as the drain bag, among other things. In an example where there are multiple different mobile robots (e.g., cleaning robots and mopping robots) in the environment associated with respective docking stations, the mobile device 620 may take images of each docking station and receive the operating status of each of the mobile robots recognized from the images.

[0115] In one example, a user may hold and point the mobile device 620 at the mobile cleaning robot 610 to take an image of the mobile cleaning robot 610. The mobile device 620 may recognize the mobile cleaning robot 610 from the image and receive information about the operating status of the mobile cleaning robot 610 as stored in the cloud computing system 406. The information about the operating status of the mobile cleaning robot may include, by way of example and not limitation, the status of the mobile cleaning robot's 610 dust bin (e.g., that the dust bin for collecting and temporarily storing dust collected by the mobile cleaning robot 610 is full), the status of a filter for filtering dust (e.g., the filter is worn or needs to be replaced), the status of one or more sensors, or the status of the battery, among others. In one example where multiple different mobile robots (e.g., a cleaning robot and a mopping robot) are present in an environment, the mobile device 620 may take images of one or more mobile robots and receive the operating status of each of the docking stations recognized from the image. An AR representation of the mobile cleaning robot may be generated and displayed on the user interface 622, including an indication of the operating status of the mobile cleaning robot overlaid on the image of the mobile cleaning robot.

[0116] 7D , the user interface in FIG. 7D shows an example of an AR representation 700D of a docking area 740 around a docking station 714 for docking a mobile cleaning robot 711. The AR representation 700D includes information 742 about the docking station 714 (e.g., product identification information and serial number) and its operating status, such as a full drain bag and an estimated replacement time. A product / parts ordering link 743 for ordering parts (e.g., a new drain bag) may be displayed on the AR representation 700D. The AR representation 700D may also include information 744 about the mobile cleaning robot 711 (e.g., product identification information and serial number) and the operating status of the mobile cleaning robot 711, such as battery status, a full dust bin, filter status, an estimated part replacement time (e.g., filter), and sensor status (e.g., soiling and need for cleaning / maintenance). A product / part ordering link 745 for ordering a part (e.g., a new filter) or a tutorial link 746 on device / part maintenance, among other educational information, may be displayed on the AR representation 700D.

[0117] Example of how to verify the dock position of a mobile robot FIG. 10 is a flow chart illustrating an example of a method 1000 for verifying a location around a docking station for docking a mobile robot. The docking station may include components for recharging the mobile robot's battery and / or for evacuating debris collected and temporarily stored by the mobile robot. Examples of mobile robots may include a mobile cleaning robot, a mobile mopping robot, a lawn mowing robot, or a space monitoring robot. Method 1000 can be implemented in and executed by mobile robot system 600. At 1010, communication occurs between a mobile device (such as mobile device 404 or mobile device 620) that can be held by a user and a mobile robot (such as mobile robot 100 or mobile cleaning robot 610). The mobile device may execute device-readable instructions, such as a mobile application, implemented on the mobile device. Communication between the mobile device and the mobile robot may occur through an intermediate system, such as cloud computing system 406, or may occur via a direct communication link without an intermediate system device. In one example, the mobile device may include a user interface (UI) configured to display robot information and the operating status of the UI itself. A user may manage one or more active mobile robots and coordinate the activities of the active mobile robots in a mission. In one example, a user may use the UI control mechanisms to add a new mobile robot, such as by establishing communication between the mobile device and the new mobile robot, or to remove an existing mobile robot, such as by severing communication between the mobile device and the existing mobile robot.

[0118] At 1020, an image of a docking area around the docking station may be received. Such an image may be taken by a camera or imaging sensor mounted on a mobile device, such as mobile device 620. The image may be taken when the mobile robot moves to the docking area and when the docking station is within the field of view of the imaging sensor or camera. Alternatively, the image may be taken when the mobile robot is set to perform a cleaning mission away from the docking station. In some examples, the image may be taken by a user using a mobile device or by a camera installed in the environment and whose field of view covers the docking area around the docking station.

[0119] At 1030, the presence or absence of one or more obstacles in the docking area may be detected from the received image, such as by using the docking environment detector 615. If one or more obstacles are present in the docking area, they may obstruct or interfere with the mobile cleaning robot's entry and exit from the docking station. Various image-based obstacle detection methods are contemplated. In one example, one or more obstacles may be detected in the docking area based on a comparison of the image of the docking area with a template image representing an unobstructed docking area around the docking station. The template image may be pre-generated and stored on the mobile device or in the cloud computing system 406 accessible by the mobile cleaning robot and / or the mobile device. In some examples, if an obstacle is detected in the docking area, a location or a known reference position of the obstacle relative to the docking station may be determined based on a comparison with the template image. In some examples, other sensors may additionally or alternatively be used to detect one or more obstacles in the docking area, including, by way of example and not limitation, bump sensors, optical sensors, proximity sensors, or obstacle sensors, among others.

[0120] At 1040, a notification regarding the status of the docking area, such as the presence or absence of one or more detected obstacles within the docking area, may be generated and presented to the user. If one or more obstacles are detected within the docking area, an “obstructed docking area” indicator may be provided to the mobile device and displayed on the mobile device's user interface. The notification of the obstructed docking area may be presented in the form of a message or other form of alert. In some examples, the user may be presented with recommendations to help resolve the obstructed docking area, such as a recommendation to clear the docking area or move the docking station to a different location. In some examples, the user may be provided with additional information or help regarding robot docking, such as in the form of a frequently asked questions (FAQ) or a link to a knowledge base, such as one maintained on cloud computing system 406.

[0121] In some examples, one or more candidate dock locations may be automatically identified, such as by using the dock location identification module 629. Identification of the candidate dock locations may be based on heuristics, such as within a certain range from a detected power outlet, near or against a wall, away from corners, away from doorways, away from high traffic areas, away from carpet transitions, near areas that are typically cleaned, and / or away from high occupancy areas. In some examples, identification of the candidate dock locations may be based on the docking performance of the mobile robot around each of the candidate locations, such as a graph (e.g., a heat map) representing docking failure rates at various locations around the dock location described above with reference to FIGS. 9A and 9B. In one example, a heat map may be generated for each of the one or more candidate dock locations. The heat map may be displayed on a map of the environment. A docking failure score may be calculated from the heat map corresponding to each of the one or more candidate locations. The mobile device may recommend the candidate dock location corresponding to the smallest docking failure score among the one or more candidate locations for dock placement.

[0122] In some examples, an augmented reality (AR) representation of the docking area may be displayed to the user. The AR representation may include a machine-generated virtual bounding box that overlaps with the received image of the docking area. The machine-generated virtual bounding box defines a docking clearance zone around the docking station. The virtual bounding boxes may be displayed in different colors, render styles, or presentation modes to visually distinguish obstructed docking areas from unobstructed docking areas, examples of which are shown in FIGS. 7A-7C. Notifications, recommendations, and additional docking information may be displayed to the user as part of the AR representation.

[0123] In some examples, wireless communication signal conditions may be detected in the docking area, such as by using the wireless communication signal condition detector 628. One example of a wireless communication signal condition is Wi-Fi signal strength. A user may use a mobile device to detect the Wi-Fi signal strength in the docking area, such as during initial setup of the mobile cleaning robot and the docking station, or after the docking station is moved to a new location in the environment. The wireless communication signal conditions, such as the Wi-Fi signal strength, may be displayed on the user interface as part of an AR representation of the docking area, as shown in FIGS. 7A-7C . Recommendation information indicating to improve the Wi-Fi signal strength (e.g., move the docking station to a different location) may be presented to the user on the user interface.

[0124] At 1050, the mobile cleaning robot may be steered into or away from the docking station based on the detected conditions of the docking area. If the conditions of the docking area meet certain conditions, such as the docking area or a portion thereof (e.g., docking lane 550) being free of obstacles that obstruct or interfere with the docking process, the mobile cleaning robot may move forward into or away from the docking station. If the docking area does not meet certain conditions, such as the docking area or a portion thereof being obstructed by one or more obstacles, and / or if insufficient Wi-Fi signal strength is detected in the docking area, the user may be prompted to correct the conditions in the docking area, such as by clearing the docking area to provide sufficient space around the docking station or by moving the docking station to an alternative location with sufficient space and / or stronger Wi-Fi signal strength. The docking area may then be re-evaluated. After verifying that certain conditions are met (e.g., an unobstructed docking area and sufficient Wi-Fi coverage in the docking area), the mobile cleaning robot may move forward into or away from the docking station automatically or upon receiving confirmation from the user.

[0125] Example of a Machine-Readable Medium for Robot Scheduling and Control 11 illustrates a block diagram of an example machine 1100 in which any one or more of the techniques (e.g., methods) described herein may operate. Portions of this description may apply to the computing framework of various parts of the mobile robot 100, the mobile device 404, or other computing systems, such as a local computer system or a cloud computing system 406.

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

[0127] The examples described herein may include logic or several components, or mechanisms, and may operate via logic or several components, or mechanisms. A circuit set is a collection of circuits implemented as tangible entities including hardware (e.g., simple circuits, gates, logic, etc.). The members of a circuit set are flexible over time, essentially allowing the hardware to be changed. A circuit set includes members, whether alone or in combination, that may perform specified operations when operated. In one example, the hardware of a circuit set may be irrevocably designed (e.g., hard-wired) to perform specific operations. In one example, the hardware of a circuit set may include variably connected physical components (e.g., execution units, transistors, simple circuits, etc.) including computer-readable media physically modified (e.g., magnetically modified, electrically modified, movably positioned invariant cohesive particles, etc.) to encode instructions for specific operations. When connecting the physical components, the basic electrical properties of the hardware components are changed, for example, from insulator to conductor, or vice versa. Each instruction enables the embedded hardware (e.g., an execution unit or loading mechanism) to create each member of the circuit set in the hardware via variable connections to perform a portion of a particular operation during operation. Thus, the computer-readable medium is communicatively coupled to other components of the circuit set members when the device operates. In one example, any of the physical components may be used in multiple members of multiple circuit sets. For example, during operation, an execution unit may be used in a first circuit of a first circuit set at one time, and reused by a second circuit in the first circuit set or a third circuit in the second circuit set at a different time.

[0128] The machine (e.g., computer system) 1100 may include a hardware processor 1102 (e.g., a central processing unit (CPU), a graphics processing unit (GPU), a hardware processor core, or any combination thereof), a main memory 1104, and a static memory 1106, some or all of which may communicate with each other via an interlink (e.g., a bus) 1108. The machine 1100 may further include a display unit 1110 (e.g., a raster display, a vector display, a holographic display, etc.), an alphanumeric input device 1112 (e.g., a keyboard), and a user interface (UI) navigation device 1114 (e.g., a mouse). In one example, the display unit 1110, the input device 1112, and the UI navigation device 1114 may be touchscreen displays. The machine 1100 may further include a storage device (e.g., a drive unit) 1116, a signal generating device 1118 (e.g., a speaker), a network interface device 1120, and one or more sensors 1121, such as a global positioning system (GPS) sensor, a compass, an accelerometer, or other sensor. The machine 1100 may include an output controller 1128, such as a serial (e.g., Universal Serial Bus (USB), parallel, or other wired or wireless (e.g., infrared (IR), near field communication (NFC), etc.) connection, to communicate with or control one or more peripheral devices (e.g., a printer, a card reader, etc.).

[0129] The storage device 1116 may include a machine-readable medium 1122 on which is stored one or more sets of data structures or instructions 1124 (e.g., software) that embody or are utilized by any one or more of the techniques or functions described herein. The instructions 1124 may reside entirely, or at least partially, within the main memory 1104, the static memory 1106, or the hardware processor 1102 during execution of the instructions 1124 by the machine 1100. In one example, one or any combination of the hardware processor 1102, the main memory 1104, the static memory 1106, or the storage device 1116 may constitute a machine-readable medium.

[0130] Although the machine-readable medium 1122 is illustrated as a single medium, the term "machine-readable medium" may include a single medium or multiple media (e.g., a central or distributed database, and / or associated caches and servers) configured to store one or more instructions 1124.

[0131] The term “machine-readable medium” may include any medium capable of storing, encoding, or carrying instructions executed by the machine 1100, causing the machine 1100 to perform any one or more of the techniques of this disclosure, or storing, encoding, or carrying data structures used by or related to such instructions. Non-limiting examples of machine-readable media may include solid-state memory and optical and magnetic media. In one example, a high-capacity machine-readable medium comprises a machine-readable medium containing a plurality of particles having an unchanging (e.g., stationary) mass. Thus, a high-capacity machine-readable medium is not a transitory, propagating signal. Specific examples of high-capacity machine-readable media may include non-volatile memory such as semiconductor memory devices (e.g., Electrically Programmable Read-Only Memory (EPROM), Electrically Erasable Programmable Read-Only Memory (EPSOM)) and flash memory devices, magnetic disks such as internal hard disks and removable disks, optical-magnetic disks, and CD-ROM and DVD-ROM disks.

[0132] The instructions 1124 may further be transmitted or received over a communications network 1126 using a transmission medium via a network interface device 1120 that utilizes any of several transport protocols (e.g., frame relay, Internet Protocol (IP), Transmission Control Protocol (TCP), User Datagram Protocol (UDP), Hypertext Transfer Protocol (HTTP), etc.). Exemplary communications networks may include local area networks (LANs), wide area networks (WANs), packet data networks (e.g., the Internet), networks (e.g., cellular networks), plain old telephone service (POTS) networks, and wireless data networks (e.g., the Institute of Electrical and Electronics Engineers (IEEE) 802.11 family of standards called Wi-Fi®, the Institute of Electrical and Electronics Engineers (IEEE) 802.16 family of standards called WiMax®), the IEEE 802.15.4 family of standards, peer-to-peer (P2P) networks, among others. In one example, the network interface device 1120 may include one or more physical jacks (e.g., Ethernet, coaxial, or phone jack) or one or more antennas for connecting to the communications network 1126. In one example, the network interface device 1120 may include multiple antennas for communicating wirelessly using at least one of single-input multiple-output (SIMO), multiple-input multiple-output (MIMO), and multiple-input single-output (MISO) techniques. The term “transmission medium” shall be deemed to include any intangible medium capable of storing, encoding, or carrying instructions executed by the machine 1100 and facilitating the communication of such software, including digital or analog communications signals or other intangible media.

[0133] The above figures illustrate various embodiments, and one or more features of one or more of these embodiments may be combined to form other embodiments.

[0134] The example methods described herein may be at least partially machine or computer-implemented. Some examples may include a computer-readable or machine-readable medium encoded with instructions operable to configure an electronic device or system to perform a method such as that described in the examples. Implementations of such methods may include code, such as microcode, assembly language code, high-level language code, etc. Such code may include computer-readable instructions for performing various methods. The code may form part of a computer program product. Furthermore, the code may be tangibly stored on one or more volatile or non-volatile computer-readable media at execution time or otherwise.

[0135] The above description is illustrative, and not limiting. Accordingly, the scope of the present disclosure should be determined with reference to the appended claims, along with the full scope of equivalents to which such claims are entitled.

[0136] The present invention may further include the following aspects. [Section 1] 1. A mobile robot system, comprising: A docking station and A mobile cleaning robot, a drive system configured to move the mobile cleaning robot around an environment including a docking area within a predetermined distance from the docking station; a controller circuit configured to receive an image of the docking area, to detect from the received image the presence or absence of one or more obstacles within the docking area, and to generate a notification to a user regarding the detected presence or absence of one or more obstacles; a mobile cleaning robot including: A mobile robot system comprising: [Section 2] Item 1. The mobile robot system of item 1, wherein the mobile cleaning robot includes an imaging sensor configured to generate the image of the docking area. [Section 3] 3. The mobile robot system of any one of claims 1 and 2, wherein the controller circuitry is configured to receive the image of the docking area from a mobile device in operative communication with the mobile cleaning robot, the mobile device including an imaging sensor configured to generate the image of the docking area. [Section 4] 4. The mobile robot system of any one of claims 1 to 3, wherein the controller circuitry is configured to detect the presence or absence of one or more obstacles in the docking area based on a comparison of the image of the docking area with a stored image of the docking area without the obstacles. [Section 5] 5. The mobile robot system of any one of claims 1 to 4, wherein the mobile cleaning robot includes at least one sensor including a bump sensor, an optical sensor, a proximity sensor, or an obstacle sensor, and the controller circuit is configured to detect the presence or absence of one or more obstacles in the docking area further based on a signal detected by the at least one sensor. [Section 6] a mobile device in operative communication with the mobile cleaning robot, presenting the notification to the user regarding the detected obstacle or obstacles; In response to the presence of one or more obstacles in the docking area, generating a recommendation to the user indicating to clear the docking area or to relocate the docking station. 6. The mobile robot system of any one of claims 1 to 5, comprising a mobile device configured to: [Section 7] The mobile device generating a graph representing a docking failure rate for each location around the current location of the docking station when one or more of the locations are occupied by an obstacle; configured to display the graph on a map of the environment; Item 7. The mobile robot system of item 6, wherein the recommendation information indicating to clear the docking area or reposition the docking station is based on the graph. [Section 8] The mobile device calculating a docking failure score based on the graph; Item 8. The mobile robot system of item 7, configured to generate the recommendation information indicating to clear the docking area or reposition the docking station if the docking failure score exceeds a threshold. [Section 9] The mobile device presenting to the user one or more candidate locations for the docking station on a map of the environment; 9. The mobile robot system of any one of claims 6 to 8, configured to receive a user-selected location for placing the docking station from the one or more candidate locations. [Section 10] The mobile device generating, for each of one or more candidate locations for the docking station, a graph representing a docking failure rate at each location around the corresponding candidate location when one or more of the respective locations are occupied by an obstacle; Item 10. The mobile robot system of item 9, configured to display the graph corresponding to the one or more candidate positions on a map of the environment. [Section 11] The mobile device calculating a docking failure score from each of the graphs corresponding to the one or more candidate positions; Item 11. The mobile robot system of item 10, configured to present the user with a recommended location based on a docking failure score corresponding to the one or more candidate locations. [Section 12] The mobile device receiving an image of the docking station and information regarding the operational status of the docking station; Item 12. The mobile robot system of any one of items 6 to 11, configured to generate an augmented reality representation including a machine-generated operational status indicator of the docking station overlaid on an image of the docking station. [Section 13] Item 13. The mobile robot system of item 12, wherein the operational status of the docking station includes the status of an ejection unit included in the docking station and configured to remove debris from the mobile cleaning robot. [Section 14] The mobile device receiving an image of the mobile cleaning robot and information about an operation status of the mobile cleaning robot; Item 14. The mobile robot system of any one of items 6 to 13, configured to generate an augmented reality representation including machine-generated operational status indicators of the mobile cleaning robot overlaid on the image of the mobile cleaning robot. [Section 15] Item 15. The mobile robot system of item 14, wherein the operational status of the mobile cleaning robot includes the respective status of one or more of the mobile cleaning robot's dust bin, filter, sensor, or battery. [Section 16] 1. A mobile robot system, comprising: A mobile cleaning robot, a controller circuit; and a mobile cleaning robot including a drive system configured to move the mobile cleaning robot around an environment including a docking area around a docking station; a mobile device in operative communication with the mobile cleaning robot and configured to generate and display to a user an augmented reality (AR) representation of the docking area, the AR representation including a machine-generated virtual bounding box overlapping an image of the docking area, the machine-generated virtual bounding box defining a docking clearance zone around the docking station. [Section 17] The mobile device detecting the presence or absence of one or more obstacles from the image of the docking area; Item 17. The mobile robot system of item 16, configured to display the machine-generated virtual bounding box in a first color or render style when one or more of the obstacles are present within the machine-generated virtual bounding box, or to display the machine-generated virtual bounding box in a different second color or render style when no obstacles are present within the machine-generated virtual bounding box. [Section 18] 18. The mobile robot system of any one of clauses 16 and 17, wherein the mobile device is configured to generate recommendation information to the user indicating to clear the docking area or reposition the docking station in response to the presence of one or more obstacles within the machine-generated virtual bounding box. [Section 19] The mobile device Detecting the status of a wireless communication signal for data communication between the mobile cleaning robot and one or more of the docking station or the mobile device in the docking area; presenting the wireless communication signal status to the user; 19. The mobile robot system of any one of clauses 16 to 18, configured to generate recommendation information to the user indicating to clear the docking area or relocate the docking station when the wireless communication signal conditions meet a signal strength condition. [Section 20] Item 20. The mobile robot system of item 19, wherein the wireless communication signal status includes an indicator of Wi-Fi signal strength. [Section 21] A non-transitory machine-readable storage medium containing instructions that, when executed by one or more processors of a machine, receiving an image of a docking area within a predetermined distance from a docking station for docking the mobile cleaning robot in the environment; detecting the presence or absence of one or more obstacles within the docking area from the received images; and generating a notification to a user regarding the detected presence or absence of one or more obstacles. [Section 22] The instruction: receiving a signal sensed by at least one sensor associated with the mobile cleaning robot, the at least one sensor including a bump sensor, an optical sensor, a proximity sensor, or an obstacle sensor; 22. The non-transitory machine-readable storage medium of claim 21, further causing the machine to perform an operation including detecting the presence or absence of one or more obstacles within the docking area based further on the signal detected by the at least one sensor. [Section 23] 23. The non-transitory machine-readable storage medium of any one of clauses 21 and 22, wherein the operation of detecting the presence or absence of one or more obstacles in the docking area includes comparing the image of the docking area with a stored image of the docking area without obstacles. [Section 24] 24. The non-transitory machine-readable storage medium of any one of clauses 21 to 23, wherein the instructions cause the machine to perform an operation further including, in response to detecting the presence of one or more obstacles in the docking area, generating recommendation information to the user indicating to clear the docking area or relocate the docking station. [Section 25] The instruction: generating a graph representing a docking failure rate at each location around the current position of the docking station when one or more of the locations are occupied by an obstacle; displaying the graph on a map of the environment; 25. A non-transitory machine-readable storage medium according to any one of clauses 21 to 24, further comprising: generating, based on the graph, recommendation information for the user indicating that the user should tidy up the docking area or change the location of the docking station to a different location. [Section 26] The instructions cause the machine to perform operations further including calculating a docking failure score based on the graph; 26. The non-transitory machine-readable storage medium of claim 25, wherein the operation of generating recommendation information indicating clearing the docking area or relocating the docking station is performed in response to the docking failure score exceeding a threshold. [Section 27] The instruction: presenting to the user one or more candidate locations for the docking station on a map of the environment; 27. A non-transitory machine-readable storage medium according to any one of clauses 21 to 26, further comprising: receiving a location for placing the docking station selected by a user from the one or more candidate locations. [Section 28] The instruction: generating, for each of the one or more candidate locations for the docking station, a graph representing a docking failure rate at each of the locations around the corresponding candidate location when one or more of the respective locations are occupied by an obstacle; and displaying the graph corresponding to the one or more candidate locations on a map of the environment. [Section 29] The instruction: calculating a docking failure score from the graph corresponding to each of the one or more candidate locations; 29. The non-transitory machine-readable storage medium of clause 28, further comprising: presenting a recommended location to a user based on the docking failure score corresponding to the one or more candidate locations. [Section 30] 30. The non-transitory machine-readable storage medium of any one of clauses 21 to 29, wherein the instructions cause the machine to perform an operation further including generating and displaying an augmented reality (AR) representation of the docking area to a user, the AR representation including a machine-generated virtual bounding box that overlaps the image of the docking area, the machine-generated virtual bounding box defining a docking clearance zone around the docking station. [Section 31] Item 31. The non-transitory machine-readable storage medium of item 30, wherein the operation of generating and displaying the AR representation includes displaying the machine-generated virtual bounding box in a first color or render style if one or more of the obstacles are present within the machine-generated virtual bounding box, or displaying the machine-generated virtual bounding box in a different second color or render style if no obstacles are present within the machine-generated virtual bounding box. [Section 32] The instruction: Detecting the status of a wireless communication signal for data communication between the mobile cleaning robot and one or more of the docking stations or mobile devices in the docking area; presenting the wireless communication signal status to the user; 32. A non-transitory machine-readable storage medium as described in any one of clauses 30 and 31, which causes the machine to perform operations further including generating recommendation information for the user indicating to tidy up the docking area or relocate the docking station when the wireless communication signal conditions meet a signal strength condition. [Explanation of symbols]

[0137] 20 Environment 100 Mobile Robots 106 Electrical Circuits 108 Housing Infrastructure, Robot Housing 109 Controller Circuit 110 Drive System 112 Drive wheels 113 Bottom 114 Motor 115 Caster Wheel 116 Cleaning head assembly 117 Cleaning suction port 118 Rotatable members 119 Vacuum System 120 Roller motor 122 Front 121 Posterior part 124 Garbage Bin 126 Brush, side brush 128 brush motor 134 Cliff Sensor 136a, 136b, 136c Proximity sensors 137 Optical Indicator System 138 Bumper 139a, 139b Collision sensors 141 Obstacle Tracking Sensor 142 Top 143 Continuous Loop 144 Memory storage element 145 Intake path 146, 148 horizontal axis 147 Lid 150, 152 Side 154 Front side 156, 158 Corner surface 161 Drive motor sensor 162 center 164 Inertial Measurement Unit (IMU) 180 Optical Detector 182, 184 Optical emitter 300 Control Architecture 305 Communication Systems 306 Beacon Communication Module 307 Wireless Communication Module 310 Cleaning System 316 Suction fan motor 317 Motor Sensor 320 Sensor System 324 processors 325 Visual Sensor 326 Input / Output Unit 336 Proximity Sensor 339 Bumper Sensor 400A Communication Network 402 users 404 Mobile Devices 406 Cloud Computing System 408 Autonomous Robots 430 Controller 442, 444 processors 500 Docking Station 510 Emission Color 520A, 520B Locks, Clamps, or Detents 522A, 522B charging contacts 540A, 540B fiducial markers 550 Docking Lane 560 Docking Port 570 Receptacle 610 Mobile Cleaning Robot 611 Sensor 612 Controller Circuit 614 Drive System 615 Docking Environmental Detector 616 Docking Navigator 620 Mobile Devices 622 User Interface 624 imaging sensor 626 Augmented Reality (AR) Module 628 Communication Signal Status Detector 629 Dock Location Identification Module 630 Docking Station 700A, 700B, 700C, 700D AR representation 710 Docking Area 711 Mobile Cleaning Robot 712 Machine-Generated Virtual Bounding Boxes 713 Push Notifications 714 Docking Station 718 Push Notifications 719 screens 721 Mobile Robot 722 Virtual Bounding Box 723 Push Notifications 724 Docking Station 726 Object 728 Warning Message 729 screens 740 Docking Area 742 Information 743 Product / Part Ordering Links 744 Information 745 Product / Part Ordering Links 746 Tutorial Links 810 Current mobile robot position 831 Current dock location 832, 833 candidate dock locations 841 Avoidance position 900 Heatmaps 910 Bounding Box 930 Docking Station 941, 942, 943, 944 partial area 1100 Machinery 1102 Hardware Processor, Processor 1104 main memory 1106 Static Memory 1108 Interlink 1110 Display unit, display device 1112 Alphanumeric input device, input device 1114 User Interface (UI) Navigation Devices 1116 Storage Devices 1118 Signal Generating Device 1120 Network Interface Device 1121 Sensor 1122 Machine-readable medium 1124 Instructions 1126 Network 1128 Output Controller D. Candidate dock location P place D1 horizontal distance H1 Height W1 Overall width

Claims

1. 1. A mobile robot system, comprising: a docking station; a mobile cleaning robot including a drive system configured to drive the mobile cleaning robot through an environment and to dock the mobile cleaning robot to the docking station; a user controller device in operative communication with a mobile cleaning robot, the user controller device comprising: determining a docking failure rate for each of a plurality of locations within the environment when one or more of the locations are obstructed by an obstacle; identifying at least one candidate dock location within the environment for placing the docking station based on the determined docking failure rates for the plurality of locations; presenting the identified at least one potential docking location on a user interface; generating a graphical representation of the determined docking failure rates across the plurality of locations in the environment and displaying the graphical representation on the user interface; a user controller device configured to A mobile robot system comprising:

2. 2. The mobile robot system of claim 1, wherein the user controller device is configured to determine the docking failure rate using docking data from multiple docking instances in the environment by the mobile cleaning robot or one or more mobile robots other than the mobile cleaning robot.

3. determining the docking failure rate includes, for each of the plurality of locations, determining a differential docking failure rate using the difference between (i) a first docking failure rate when the corresponding location is not obstructed and (ii) a second docking failure rate when the corresponding location is obstructed; 2. The mobile robot system of claim 1, wherein the user controller device is configured to identify the at least one candidate docking location from one or more locations of the plurality of locations having a corresponding differential docking failure rate below a threshold.

4. The user controller device further comprises: identifying one or more sub-regions within the environment having different docking failure risk levels based on the docking failure rates for the plurality of locations, each of the one or more sub-regions including one or more of the plurality of locations; Presenting the identified one or more subregions on the user interface. The mobile robot system according to claim 1 , configured as follows:

5. the identified one or more sub-regions include a dock avoidance region; The mobile robot system of claim 4 , wherein the user controller device is configured to generate recommendation information indicating to avoid placing the docking station in the identified dock avoidance region.

6. 5. The mobile robot system of claim 4, wherein the user controller device is further configured to generate recommendation information indicating to eliminate obstructions in a docking area for the docking station based on the identified one or more partial regions.

7. the at least one potential docking location includes two or more potential docking locations; The user controller device further comprises: calculating a docking failure score for each of the two or more candidate docking locations based on the docking failure rates for the plurality of locations; From the two or more candidate docking locations, determine a recommended docking location whose corresponding docking failure score satisfies a specific condition. The mobile robot system according to claim 1 , configured as follows:

8. 1. A mobile robot system, comprising: a docking station; a mobile cleaning robot including a drive system configured to drive the mobile cleaning robot through an environment and to dock the mobile cleaning robot to the docking station; a user controller device in operative communication with a mobile cleaning robot, the user controller device comprising: Accepting user input regarding a specified subregion of the environment; determining a docking failure rate for each of a plurality of locations within the specified subregion when one or more of the locations are obstructed by an obstacle; identifying at least one candidate docking location within the specified sub-region for placing the docking station based on the docking failure rates determined for the plurality of locations; presenting the identified at least one potential docking location on a user interface; a user controller device configured to A mobile robot system comprising:

9. the user controller device, identifying sub-regions of the environment based on one or more of foot traffic volume, occupancy status, surface condition, and accessibility; determining the candidate docking locations in the identified subregion of the environment based on the docking failure rates for the plurality of locations; The mobile robot system according to claim 1 , configured as follows:

10. the mobile cleaning robot includes a sensor system configured to detect the presence or absence of an obstacle in a docking area for the docking station; 2. The mobile robot system of claim 1, wherein the user controller device is configured to generate recommendation information indicating repositioning the docking station to the candidate dock location in response to detecting the presence of an obstacle in the docking area.

11. The mobile robot system of claim 10 , wherein the sensor system includes at least one of an imaging sensor, a bump sensor, an optical sensor, a proximity sensor, and an obstacle sensor.

12. 1. A method of controlling a mobile cleaning robot via a user controller device to dock at a docking station in an environment, comprising: accepting docking data from a plurality of docking instances in the environment by the mobile cleaning robot or one or more mobile robots other than the mobile cleaning robot; using the received docking data to determine a docking failure rate for each of a plurality of locations within the environment when one or more of the locations are obstructed by an obstacle; Identifying, via the user controller device, at least one candidate dock location within the environment for placing the docking station based on the determined docking failure rates for the plurality of locations; presenting the identified at least one potential dock location to a user on a user interface of the user controller device; generating a graphical representation of the determined docking failure rates across the plurality of locations within the environment and displaying the graphical representation on the user interface; generating a control signal for the mobile cleaning robot to dock at the docking station; A method comprising:

13. determining the docking failure rate includes, for each of the plurality of locations, determining a differential docking failure rate using the difference between (i) a first docking failure rate when the corresponding location is not obstructed and (ii) a second docking failure rate when the corresponding location is obstructed; The method of claim 12 , wherein identifying the at least one candidate docking location comprises identifying one or more locations among the plurality of locations having a corresponding differential docking failure rate below a threshold.

14. identifying one or more sub-regions within the environment having different docking failure risk levels based on the docking failure rates for the plurality of locations, each of the one or more sub-regions including one or more of the plurality of locations; presenting the identified one or more sub-regions on the user interface; and 13. The method of claim 12, comprising:

15. 15. The method of claim 14, wherein the identified one or more sub-regions include a dock avoidance region, the method further comprising generating recommendation information indicating to avoid placing the docking station in the identified dock avoidance region.

16. The method of claim 12 , comprising generating a graphical representation of the determined docking failure rates across the plurality of locations in the environment and displaying the graphical representation on the user interface.

17. The at least one potential docking location includes two or more potential docking locations, and the method further comprises: calculating a docking failure score for each of the two or more candidate docking locations based on the docking failure rates for the plurality of locations; determining, from the two or more candidate docking locations, a recommended docking location whose corresponding docking failure score satisfies a specific condition; 13. The method of claim 12, further comprising:

18. identifying a sub-region based on one or more of foot traffic, occupancy status, surface conditions, and accessibility in at least a portion of the environment; determining the candidate docking locations in the identified subregion of the environment based on the docking failure rates for the plurality of locations; 13. The method of claim 12, comprising:

19. Detecting the presence or absence of an obstacle in a docking area for the docking station using a contact sensor or an imaging sensor associated with the mobile cleaning robot; generating recommendation information indicating placement of the docking station at the candidate dock location in response to detecting the presence of an obstacle in the docking area; 13. The method of claim 12, comprising:

20. accepting user input for a specified subregion of the environment; determining the candidate docking locations within the specified subregion of the environment based on the docking failure rates for the plurality of locations; 13. The method of claim 12, comprising:

Citation Information

Patent Citations

  • Autonomous robot auto-docking and energy management systems and methods

    US20050156562A1

  • Robot management systems for determining docking station pose including mobile robots and methods using same

    US20140100693A1

  • Mobile Robot Providing Environmental Mapping for Household Environmental Control

    US20140207282A1

  • Method and system for robot localization and confinement

    US7196487B2

  • Protocol translation in a storage system

    US7404000B2

Cited By

  • Mobile body control method, mobile body, program, mobile body control system, mold change system

    JP7860653B1