Patent Description:
Autonomous cleaning robots are robots that can perform desired cleaning operations, such as vacuum cleaning, in environments without continuous human guidance. An autonomous cleaning robot can automatically dock with an evacuation station for the purpose of emptying its debris bin of vacuumed debris. During an evacuation operation, the evacuation station can draw debris collected by the robot into the evacuation station. The drawn debris can be stored in a receptacle within the evacuation station. When the debris collected in the receptacle has reached a debris capacity of the receptacle, a user can manually remove the debris so that the evacuation station can perform additional evacuation operations. Known autonomous cleaning robots can be found in <CIT> and <CIT>.

Described herein are examples of methods and devices for controlling and monitoring autonomous robots configured to traverse floor surfaces and perform various operations including, but not limited to, cleaning. An autonomous cleaning robot may interface with an evacuation station to empty a debris collection bin of the autonomous cleaning robot into a filter bag in the evacuation station. Statuses of the autonomous cleaning robot and the evacuation station may be presented on a display of a mobile device for monitoring, user control, etc. Advantages of the foregoing may include, but are not limited to, those described below and herein elsewhere.

An advantage described herein is that a mobile application executed by the mobile device can present statuses of the robot and of the evacuation station for remote monitoring by a user. As such, the user may monitor and control the robot from a remote location, e.g., his/her work place, etc., during a scheduled cleaning run. The user may also change automatic evacuation settings such that the autonomous cleaning robot will empty the debris bin without repeated input from the user. This process allows for efficient cleaning and less down time being experienced by the robot while waiting for instructions from a user. Additionally, the mobile application can present instructions for fixing common problems experienced at the evacuation station, e.g., the filter bag is full, as the status is presented.

In one aspect, the present specification provides a method of operating an autonomous cleaning robot. The method includes receiving, at a handheld computing device, data representing a status of a debris collection bin of the autonomous cleaning robot, the status of the bin including a bin fullness reading. The method also includes receiving, at the handheld computing device, data representing a status of a filter bag of an evacuation station, the status of the filter bag including a bag fullness reading. The method also includes presenting, on a display of the handheld computing device, a first status indicator representing the bin fullness reading, and presenting, on the display of the handheld computing device, a second status indicator representing the bag fullness reading.

In some implementations, the first status indicator indicates that the bin of the autonomous cleaning robot is full.

In some implementations, the second status indicator indicates that the filter bag of the evacuation station is full.

In some implementations, the method also includes initiating a transmission from the handheld computing device to the autonomous cleaning robot, the transmission including data for causing the autonomous cleaning robot to dock at the evacuation station and empty the bin.

In some implementations, the method also includes receiving at the handheld computing device, from the autonomous cleaning robot, a notification that the bin is empty.

In some implementations, the method also includes presenting, on the display of the handheld computing device, a count representing a number of instances that the bin has been emptied.

In some implementations, the method also includes initiating a transmission to the autonomous cleaning robot, the transmission including data for causing the autonomous cleaning robot to continue cleaning when the bin fullness reading indicates the bin is full.

In some implementations, the method also includes initiating a transmission to the autonomous cleaning robot, the transmission including data for causing the autonomous cleaning robot to dock at the evacuation station and empty the bin based on one or more conditions being satisfied.

In some implementations, the method also includes presenting, on the display of the handheld computing device, a progress graphic configured to indicate a level of completion of emptying the bin of the autonomous cleaning robot by the evacuation station.

In some implementations, the method also includes presenting on the display of the handheld computing device, a time indicator representing an amount of time elapsed for emptying the bin of the autonomous cleaning robot at the evacuation station.

In some implementations, the data representing the status of the debris collection bin of the autonomous cleaning robot received at the handheld computing device is received from the autonomous cleaning robot.

In some implementations, the data representing the status of the filter bag of the evacuation station received at the handheld computing device is received from the autonomous cleaning robot.

In another aspect, a handheld computing device including one or more inputs, a display, and a processor is disclosed. The processor is configured to receive data representing a status of a bin of an autonomous cleaning robot, the status of the bin including a bin fullness reading. The processor is configured to receive data representing a status of a filter bag of an evacuation station, the status of the filter bag including a bag fullness reading. The processor is configured to present, on a display of the handheld computing device, a first status indicator representing the bin fullness reading. The processor is configured to present, on the display of the handheld computing device, a second status indicator representing the bag fullness reading.

In some implementations, wherein the first status indicator indicates that the bin of the autonomous cleaning robot is full.

In some implementations, the second status indicator indicates that the filter bag of an evacuation station is full.

In some implementations, the processor is further configured to initiate a transmission to the autonomous cleaning robot, the transmission including data for causing the autonomous cleaning robot to dock at the evacuation station and empty the bin.

In some implementations, the processor is further configured to receive, from the autonomous cleaning robot, a notification that the bin is empty.

In some implementations, the processor is further configured to present, on the display, a count representing a number of instances that the bin has been emptied.

In some implementations, the processor is further configured to present, on the display of the handheld computing device, a time indicator representing an amount of time elapsed for emptying the bin of the autonomous cleaning robot at the evacuation station.

In some implementations, the processor is further configured to initiate a transmission to the autonomous cleaning robot, the transmission including data for causing the autonomous cleaning robot to continue cleaning after the bin fullness reading indicates the bin is full.

In some implementations, the processor is further configured to initiate a transmission to the autonomous cleaning robot, the transmission including data for causing the autonomous cleaning robot to dock at the evacuation station and empty the bin based on one or more conditions being satisfied.

In some implementations, the processor is further configured to present, on the display of the handheld computing device, a progress graphic configured to indicate a level of completion of emptying the bin of the autonomous cleaning robot by the evacuation station.

In some implementations, the processor is configured to receive the data representing the status of the bin of the autonomous cleaning robot from the autonomous cleaning robot.

In some implementations, the processor is configured to receive the data representing the status of the filter bag of the evacuation station from the autonomous cleaning robot.

In another aspect, an evacuation station is disclosed. The evacuation station includes a docking platform configured to receive an autonomous cleaning robot, one or more conduits including an intake configured to interface with the autonomous cleaning robot, a filter bag configured to receive debris evacuated from the autonomous cleaning robot, an indicator configured to present a status of the evacuation station, and a transceiver configured to communicate with the autonomous cleaning robot, wherein the transceiver is configured to send a signal to the autonomous cleaning robot based on the status of the evacuation station.

In some implementations, the indicator includes a light emitting diode (LED) configured to change from a first state to a second state based on the status of the evacuation station. In some instances, changing from the first state to the second state includes changing a color of the LED. In some instances, changing from the first state to the second state includes changing a blinking pattern of the LED. In some instances, the second state represents an error condition at the evacuation station. In some instances, the error condition represents the evacuation station being clogged. In some instances, the error condition represents the filter bag of the evacuation station being full. In some instances, the error condition represents the filter bag of the evacuation station being absent. In some instances, the error condition represents a communication error between the autonomous cleaning robot and the evacuation station. In some instances, the error condition represents an unsealed lid of the evacuation station. In some instances, the error condition represents a motor malfunction.

In some implementations, the signal includes a control signal for causing the autonomous cleaning robot to emit an audio signal.

In some implementations, the signal includes a control signal for causing the autonomous cleaning robot to illuminate an indicator on the autonomous cleaning robot.

An executable application can be used to control autonomous robots configured to traverse floor surfaces and perform various operations including, but not limited to, cleaning. An autonomous cleaning robot may interface with an evacuation station to empty a debris collection bin of the autonomous cleaning robot into a filter bag in the evacuation station. Statuses of the autonomous cleaning robot and the evacuation station may be presented on a display of a mobile device for monitoring and for user control.

Referring to <FIG>, a system, e.g., a debris collection and monitoring system, including an evacuation station <NUM>, an autonomous cleaning robot <NUM>, and a handheld computing device (mobile device <NUM>), is shown. The evacuation station <NUM> performs an evacuation operation when the autonomous cleaning robot <NUM> and the evacuation station <NUM> are interfaced with one another. The robot <NUM> performs a cleaning operation in a room, e.g., a room of a commercial, residential, industrial, or other type of building, and collects debris from a floor surface of the room as the robot <NUM> autonomously moves about the room. The robot <NUM> is enabled to collect the debris from the floor surface. For example, an included air mover <NUM> draws air from a portion of the floor surface below the robot <NUM> and hence draws any debris on that portion of the floor surface into the robot <NUM>. The robot <NUM> can also include one or more rotatable members (not shown) facing the floor surface that engage the debris on the floor surface and mechanically moves the debris into the robot <NUM>. The one or more rotatable members can include a roller, a brush, a flapper brush, or other rotatable implements that can engage debris and direct the debris into the robot <NUM>. The debris collected from the floor surface is directed into a debris bin <NUM> of the robot <NUM>. A controller <NUM> of the robot <NUM> operates a drive system (not shown) of the robot <NUM>, e.g., including motors and wheels that are operable to propel the robot <NUM> across the floor surface, to navigate the robot <NUM> about the room and thereby clean different portions of the room.

During the cleaning operation, the controller <NUM> can determine that the debris bin <NUM> is full. For example, the controller <NUM> can determine that debris accumulated in the debris bin <NUM> has exceeded a certain percentage of the total debris capacity of the debris bin <NUM>, e.g., more than <NUM>%, <NUM>%, or <NUM>% of the total debris capacity of the debris bin <NUM>. After making such a determination, the controller <NUM> operates the drive system of the robot <NUM> to direct the robot <NUM> toward the evacuation station <NUM>. In some implementations, the robot <NUM> includes a sensor system including an optical sensor, an acoustic sensor, or other appropriate sensor for detecting the evacuation station <NUM> during the robot's navigation about the room to find the evacuation station <NUM>.

The evacuation station <NUM> can perform an evacuation operation to draw debris from the debris bin <NUM> of the robot <NUM> into the evacuation station <NUM>. To enable the evacuation station <NUM> to remove debris from the robot <NUM>, the robot <NUM> interfaces with the evacuation station <NUM> as shown in <FIG>. For example, the robot <NUM> can autonomously move relative to the evacuation station <NUM> to physically dock to the evacuation station <NUM>. In other implementations, a conduit (not shown) of the evacuation station <NUM> is manually connected to the robot <NUM>. To interface with the evacuation station <NUM>, in some implementations, an underside of the robot <NUM> includes an outlet (not shown) that engages with an intake <NUM> of the evacuation station <NUM>, shown in <FIG>. For example, the outlet of the robot <NUM> can be located on an underside of the debris bin <NUM> and can be an opening that engages with a corresponding opening of the intake <NUM>.

One or both of the robot <NUM> and the evacuation station <NUM> can include a valve mechanism that opens only when the air mover <NUM> generates a negative pressure during the evacuation operation. For example, a valve mechanism (not shown) of the robot <NUM> can include a door, flap, or other openable device that only opens in response to a negative pressure on the underside of the debris bin <NUM>, e.g., a negative pressure generated by the air mover <NUM> of the evacuation station <NUM>.

While the robot <NUM> interfaces with the evacuation station <NUM>, the debris bin <NUM> is in pneumatic communication with the air mover <NUM> of the evacuation station <NUM>. In addition, in some implementations, the robot <NUM> is in electrical communication with the evacuation station <NUM> such that the evacuation station <NUM> can charge a battery of the robot <NUM> when the robot <NUM> interfaces with the evacuation station <NUM>. Thus, while interfaced with the robot <NUM>, the evacuation station <NUM> can simultaneously evacuate debris from the robot <NUM> and charge the battery of the robot <NUM>. In other implementations, the evacuation station <NUM> charges the battery of the robot <NUM> only while the evacuation station <NUM> is not evacuating debris from the robot <NUM>.

Referring also to <FIG>, the robot <NUM> and the evacuation station <NUM> are configured to communicate with the mobile device <NUM>. A mobile device <NUM> as described herein may include a smart phone, a cellular phone, personal digital assistant, laptop computer, tablet, smart watch, or other portable (e.g., handheld) computing device capable of transmitting and receiving signals related to a robot cleaning mission. The mobile device <NUM> is configured to present, on a display <NUM>, information relating to a status of the robot <NUM>, a status of the evacuation station <NUM>, information relating to robot cleaning mission, etc. The mobile device <NUM> is also configured to receive an input from a user. The mobile device <NUM> includes a processor <NUM> configured to initiate data transmission and reception (via the internet, etc.) with the robot <NUM> and run a mobile application <NUM> configured to present interfaces relating to statuses of the robot <NUM> and evacuation station <NUM>, on the display <NUM>.

The evacuation station <NUM> includes an indicator <NUM> configured to indicate a status of the evacuation station. In this example, the indicator <NUM> is pill shaped. In some implementations, the indicator <NUM> includes a light emitting diode (LED) configured to change colors, be dimmed, and pulse in different patterns. For example, in some implementations, the indicator <NUM> may pulse red to indicate a problem needing attention (e.g., a clog, a sealing error (e.g., the top portion is not closed, the filter bag is not installed properly, etc.), a motor failure). In other implementations, the indicator <NUM> may present as solid red to indicate a problem at the evacuation station <NUM> needing attention. For example, the indicator <NUM> may display as solid red when a filter bag of the evacuation station <NUM>, positioned in a housing <NUM> of a top portion <NUM> of the evacuation station, is full. The indicator <NUM> may also display as solid red when the filter bag is absent from the evacuation station <NUM>. In some implementations, the indicator <NUM> may display as solid white to indicate a successful evacuation of the robot <NUM>.

Referring to <FIG>, during the evacuation operation while the evacuation station <NUM> is interfaced with the robot <NUM>, an airflow generated by the evacuation station <NUM> travels through the debris bin <NUM>, through airflow pathways of the evacuation station <NUM>, and through a filtering device <NUM> while carrying debris drawn from the robot <NUM>. The airflow pathways of the evacuation station <NUM> include the one or more conduits of the evacuation station <NUM>. In addition to including the conduit <NUM>, the one or more conduits can also include conduits <NUM>, <NUM>. The conduit <NUM> includes the intake <NUM> of the evacuation station <NUM> and is connected with the conduit <NUM>, and the conduit <NUM> is connected with the conduit <NUM>. In this regard, the airflow travels through the one or more conduits of the evacuation station <NUM> by travelling through the conduit <NUM>, the conduit <NUM>, and conduit <NUM>. The airflow exits the one or more conduits through the outlet <NUM> into the inlet <NUM> (shown in <FIG>) of the filtering device <NUM>, and then travels through the conduit <NUM> (shown in <FIG>). The airflow further travels through a wall of a filter bag <NUM> toward the air mover <NUM>. The wall of the filter bag <NUM> serves as a filtering mechanism, separating a portion of the debris from the airflow.

As described herein, the evacuation station <NUM> can continue to perform the evacuation operation until a sensor <NUM> of the evacuation station <NUM> detects that the filter bag <NUM> is full. In some implementations, the sensor <NUM> is positioned proximate a flow path for the flow of air. As described herein, in some implementations, the sensor <NUM> is a pressure sensor. In other implementations, the sensor <NUM> is an optical sensor, a force sensor, or other sensor that can generate one or more signal indicative of a fullness state of the filtering device <NUM>.

The filtering device <NUM> (including filter bag <NUM>) is disconnectable and removable from the evacuation station <NUM>. Referring to <FIG>, the housing <NUM> of the evacuation station <NUM> includes a cover <NUM> along a top portion of the evacuation station <NUM>. The cover <NUM> covers a receptacle <NUM> of the evacuation station <NUM>. The receptacle <NUM> can receive the filtering device <NUM>. The cover <NUM> is movable between a closed position (shown in <FIG>) and an open position (shown in <FIG>). In the open position of the cover <NUM>, a filtering device is insertable into the receptacle <NUM> or is removable from the receptacle <NUM>. For example, the filtering device <NUM> can be placed into the receptacle to be connected with the one or more conduits of the evacuation station <NUM>. In addition, the filtering device <NUM> can be disconnected from the one or more conduits of the evacuation station and then removed from the receptacle <NUM>, thereby enabling a new filtering device to be inserted into the receptacle.

<FIG> illustrate an example of a filtering device <NUM>. Referring to <FIG>, the filtering device <NUM>, as described herein, includes a filter bag <NUM>, the inlet <NUM>, and an interface assembly <NUM>. In this example, the filter bag <NUM> is approximately cube shaped. The filtering device <NUM> can be disposable, e.g., after the debris collected in the filter bag <NUM> has exceeded a certain debris capacity of the receptacle <NUM>.

The filter bag <NUM> at least partially forms the receptacle <NUM> and is formed of a material through which air can travel. The material of the filter bag <NUM> is selected such that the filter bag <NUM> can serve as a separator that separates and filters at least a portion of the debris out of the airflow generated by the evacuation station <NUM>. For example, the filter bag <NUM> can be formed of paper or fabric that allows air to pass through but traps dirt and debris and thereby retains the debris within the receptacle <NUM>. The material of the filter bag <NUM> is flexible, enabling the filter bag <NUM> to be folded and easily stored. In addition, the filter bag <NUM> can expand to accommodate additional debris as the filter bag <NUM> collects debris during an evacuation operation. The filter bag <NUM>, while collecting debris via filtration, is porous to permit the airflow to exit the filter bag <NUM> with an amount of debris less than the amount of debris with the airflow as the airflow enters the filtering device <NUM>. For example, the filter bag <NUM> can collect debris having a width larger than <NUM> micrometer, e.g., greater than <NUM> micrometers, <NUM> micrometers, <NUM> micrometers, or more.

An interface assembly <NUM> includes a collar <NUM>, a cover <NUM>, a seal <NUM>, and the conduit <NUM>. The interface assembly <NUM> is configured to interface with the one or more conduits of the evacuation station <NUM>, e.g., with the conduit <NUM> (shown in <FIG>). For example, when the filtering device <NUM> is disposed into the receptacle <NUM> of the evacuation station <NUM> and the conduit <NUM> of the evacuation station <NUM> is in a protruded position, the intake <NUM> is placed into pneumatic communication with the receptacle <NUM> of the filtering device <NUM>. Hence, when the robot <NUM> interfaces with the evacuation station <NUM>, the debris bin <NUM> of the robot <NUM> is also placed into pneumatic communication with the receptacle <NUM> of the filtering device <NUM>.

An executable application, operating on a mobile device, may communicate with the evacuation station <NUM> and the robot <NUM> allowing a user to monitor statuses of the evacuation station <NUM> and the robot <NUM>. Referring to <FIG>, a flow chart <NUM> depicts a process for transmitting data among a mobile device <NUM>, a cloud computing system <NUM>, an autonomous cleaning robot <NUM>, and an evacuation station <NUM>. In this flow chart <NUM>, the mobile device <NUM> communicates with the evacuation station <NUM> through the autonomous cleaning robot <NUM>. In some implementations, the mobile device <NUM> and the evacuation station <NUM> may communicate with each other directly.

To start, a controller <NUM> of the mobile device <NUM> presents at operation <NUM>, via a mobile application <NUM>, a prompt to empty the bin (like debris bin <NUM>) of the robot <NUM>. The user <NUM>, at operation <NUM>, initiates emptying of the bin <NUM> by, for example, selecting an option presented on a display of the mobile device <NUM>. A cloud computing system <NUM>, via a processor <NUM>, at operation <NUM> generates instructions for docking the robot <NUM> at the evacuation station <NUM> such that the bin can be emptied. The cloud computing system <NUM> sends the docking instructions to the robot <NUM>, which are then executed at operation <NUM> by a controller <NUM> controlling a drive system (e.g., wheels, etc.) of the robot <NUM>. Upon the robot <NUM> docking at the evacuation station <NUM>, a controller <NUM> instructs the evacuation station, at operation <NUM>, to execute evacuating the bin <NUM> of the robot <NUM>. During the evacuation, the controller <NUM> receives data (e.g., from sensor <NUM>, etc.) to, at operation <NUM>, check for errors. A more detailed description of this error checking operation <NUM> is given below with respect to <FIG>. The controller <NUM> of the evacuation station <NUM> sends evacuation progress updates, at operations <NUM>, <NUM>, to the controller <NUM> of the robot <NUM>. In some implementations, the controller <NUM> sends evacuation progress updates to the cloud computing system <NUM>, to the mobile device <NUM> directly, etc..

Based on the evacuation progress updates <NUM>, <NUM>, the mobile device <NUM> presents, on a display <NUM>, evacuation progress at operation <NUM> or an indication that an evacuation has completed successfully at operation <NUM>. If an error is detected during evacuation, the controller <NUM> of the evacuation station <NUM> changes a status, at operation <NUM>, of the indicator <NUM> to indicate the error (e.g., by flashing, changing color, etc.). If an error is detected during evacuation, the controller <NUM> of the evacuation station <NUM> sends information indicating the error to the robot <NUM> and the mobile device <NUM>. In this example, at operation <NUM>, the robot <NUM>, upon receiving an indication of an error, executes an error response behavior (e.g., emits an audio signal, illuminates an indicator, reattempts a docking behavior, etc.). Based on the indication of the error received from the evacuation station <NUM>, the mobile device <NUM> presents, at operation <NUM>, an error message, indicating that the evacuation station needs attention from the user <NUM>. As shown below in <FIG>, indications of errors may be presented as icons, text, buttons, etc..

An example of the error detection operation <NUM>, as shown in <FIG>, is explained in more detail in <FIG>, which illustrates an example process <NUM> executed by the controller <NUM> of the evacuation station <NUM>. After the robot <NUM> has docked at the evacuation station <NUM>, the controller <NUM> at operation <NUM> initiates an evacuation process. During the evacuation process, the controller <NUM> activates the air mover <NUM>, thereby generating the airflow to evacuate debris from the debris bin <NUM> of the robot <NUM>.

In some implementations, the sensor <NUM> (shown in <FIG>) can be a pressure sensor that generates one or more signals indicative of a steady-state pressure within the receptacle <NUM> of the evacuation station <NUM>. During the evacuation process, the controller <NUM> can transmit (via a transceiver) data indicative of a steady-state pressure, indicative of a fullness state of the evacuation station <NUM> to the mobile device <NUM>. For example, the controller <NUM> can directly transmit the data to the mobile device <NUM>, e.g., via a Bluetooth, LAN, or other appropriate wireless communication protocol, or the controller <NUM> can transmit the data to the mobile device <NUM> via a remote server.

At operation <NUM>, the controller <NUM> determines a presence or absence of a clog or other type of obstruction within flow pathways of the evacuation station <NUM>. If the controller <NUM> determines the presence of a clog or other obstruction, the controller <NUM> at operation <NUM> can deactivate the air mover <NUM> and transmit (via a transceiver) a notification to the user, via the mobile device <NUM>, to indicate that a clog or other obstruction has been detected. The controller can also change a state of the indicator <NUM> (e.g., to pulsing red) to indicate to a user that the evacuation station <NUM> requires attention.

At operation <NUM>, the controller <NUM> determines whether a proper sealed engagement between the seal <NUM> and the conduit <NUM> has been formed. If the controller <NUM> determines a proper sealed engagement has not been formed, the controller <NUM> at operation <NUM> can deactivate the air mover <NUM> and transmit a notification to the user, via the mobile device <NUM>, to indicate that an improper sealed engagement has been detected. The controller can also change a state of the indicator <NUM> (e.g., to pulsing red) to indicate to a user that the evacuation station <NUM> requires attention.

At operation <NUM>, the controller <NUM> determines whether the receptacle <NUM> of the filtering device <NUM> is full. If the controller <NUM> determines the receptacle <NUM> of the filtering device <NUM> is full, the controller <NUM> at operation <NUM> can deactivate the air mover <NUM> and transmit a notification to the user, via the mobile device <NUM>, to indicate that the receptacle <NUM> of the filtering device <NUM> is full. The controller can also change a state of the indicator <NUM> (e.g., to solid red) to indicate to a user that the evacuation station <NUM> requires attention.

The controller <NUM> can make the determinations in operations <NUM>, <NUM>, <NUM> using the one or more signals received from the sensor <NUM>. As described herein, the sensor <NUM> can be a pressure sensor that generates the one or more signals indicative of a steady-state pressure within the receptacle <NUM> of the evacuation station <NUM>, and this steady-state pressure can be indicative of a presence or absence of a clog or other obstruction, a proper or improper sealed engagement, a fullness state of the filtering device <NUM>, etc. For example, if the one or more signals is indicative of a steady-state pressure larger than an expected range for the steady-state pressure, the controller <NUM> can determine that a clog or other obstruction is present within the airflow pathways of the evacuation station <NUM>. The expected range for the steady-state pressure can be computed based on the range of steady-state pressures detected by the sensor <NUM> during previous successful evacuation processes performed by the evacuation station <NUM>.

At operation <NUM>, if a duration (e.g., a set duration) for the evacuation process has elapsed and the triggering events for operations <NUM>, <NUM>, <NUM> have not occurred, the controller <NUM> terminates the evacuation process. The controller <NUM> can deactivate the air mover <NUM> and transmit a notification to the user to indicate that the evacuation process has been completed. The controller can also change a state of the indicator <NUM> (e.g., to solid white) to indicate to a user that an evacuation has been completed successfully.

<FIG> illustrate various types of information that can be presented, edited, etc. on the display <NUM> of the mobile device <NUM>. For example, information may be presented on the display <NUM> to inform the user <NUM> of statuses of the evacuation station <NUM> and the robot <NUM>, to allow the user to initiate an evacuation of the bin <NUM>, etc..

Referring to <FIG>, an interface <NUM> presents a clean button <NUM> that allows the user <NUM> to initiate a cleaning mission by the robot <NUM>. A text indicator <NUM> and an icon <NUM> indicate to the user <NUM> that the filter bag <NUM> is full and needs to be emptied. The clean button <NUM> is selectable because the robot <NUM> can execute cleaning missions while the filter bag <NUM> of the evacuation station <NUM> is full. The interface <NUM> also includes an array of icons to allow the user <NUM> to navigate to other functions (e.g., scheduling, mapping, etc.) of the mobile application <NUM>. As the robot <NUM> executes a cleaning mission initiated by the user <NUM> pressing cleaning button <NUM>, the bin <NUM> of the robot <NUM> fills with debris. The interface <NUM> also presents an unselectable empty bin button <NUM> (e.g., the button <NUM> is greyed out) indicating that the bin <NUM> of the robot <NUM> cannot be evacuated because the filter bag <NUM> of the evacuation station <NUM> is full.

Referring to <FIG>, an interface <NUM> presents a text indicator <NUM> and an icon <NUM> to indicate to the user <NUM> that the filter bag <NUM> of the evacuation station <NUM> and the debris bin <NUM> of the robot <NUM> are full. The interface <NUM> also presents an unselectable empty bin button <NUM> (e.g., the button <NUM> is greyed out) indicating that the bin <NUM> of the robot <NUM> cannot be evacuated because the filter bag <NUM> of the evacuation station <NUM> is also full. In the interface <NUM>, a clean button <NUM> is also unselectable (e.g., the clean button <NUM> is greyed out) to indicate that the robot <NUM> cannot be instructed to execute a cleaning mission when the bin <NUM> of the robot is full and cannot be emptied (because the filter bag <NUM> of the evacuation station <NUM> is also full).

Referring to <FIG>, an interface <NUM> presents a text indicator <NUM> and an icon <NUM> to indicate to the user <NUM> that the debris bin <NUM> of the robot <NUM> is full. The interface <NUM> also presents a selectable empty bin button <NUM> indicating that the filter bag <NUM> of the evacuation station <NUM> is not full and that the robot <NUM> can be emptied at the evacuation station <NUM>. Selecting the empty bin button <NUM> (now darkened to indicate that the empty bin button <NUM> is selectable) causes the robot <NUM> to initiate a docking operation at the evacuation station <NUM>. Upon docking at the evacuation station <NUM>, the evacuation station <NUM> will initiate evacuating the bin <NUM>. The interface <NUM> also presents a selectable clean button <NUM> that allows a user <NUM> to initiate a cleaning mission despite the bin <NUM> being full. For example, the bin <NUM> may be full with compressible material (e.g., pet hair, dust, etc.) that can be compressed as more debris is picked up by the robot <NUM> during a cleaning mission.

Referring to <FIG>, an interface <NUM> presents a text indicator <NUM> and an icon <NUM> to indicate to the user <NUM> that the debris bin <NUM> of the robot <NUM> is full. The interface <NUM> presents an unselectable clean button <NUM> indicating that a cleaning mission may not be initiated until the bin <NUM> is emptied. Empty bin button <NUM> is absent from interface <NUM> indicating that the robot <NUM> has begun docking at the evacuation station <NUM> to empty the bin <NUM>.

In some implementations, the mobile device <NUM> may present, on the display <NUM>, a first icon indicating that the bin <NUM> of the robot <NUM> is full and a second icon indicating that the filter bag <NUM> of the evacuation station <NUM> is full. The first and second icons may be accompanied by text indications.

Referring to <FIG>, an interface <NUM> presents a text indicator <NUM> to inform the user <NUM> that the bin <NUM> of the robot <NUM> is being evacuated at the evacuation station <NUM>. The interface <NUM> also presents a cancel button <NUM> allowing the user <NUM> to cancel the evacuation operation. The interface <NUM> also presents an evacuation status indicator <NUM> surrounding a selectable clean button <NUM>. The evacuation status indicator <NUM> includes a filled portion <NUM> and an unfilled portion <NUM>, which are presented in different colors, wherein the filled portion <NUM> expands into the unfilled portion <NUM> as the evacuation operation progresses. The ratio of an area of the filled portion <NUM> compared to the area of the evacuation status indicator <NUM> corresponds to a percentage of the evacuation operation that has been completed.

Generally, <FIG> show summaries of three different cleaning missions. Referring to <FIG>, an interface <NUM> presents a map <NUM> corresponding to areas cleaned by the robot <NUM> during a cleaning mission. The interface <NUM> also presents a status message <NUM> of the cleaning mission, here, that the mission was completed successfully. The interface also presents a summary <NUM> of mission statistics including an amount of an area cleaned <NUM>, a number of dirt events (e.g., instances where the robot <NUM> detected a high concentration of debris) detected <NUM>, and an elapsed mission time <NUM>. The interface <NUM> also presents a circular graphic <NUM> of a breakdown <NUM> of the elapsed mission time <NUM>. Here, sections of the circular graphic <NUM> match a color of the cleaning time parameter <NUM> to show that <NUM>% of the elapsed mission time <NUM> was spent cleaning. In implementations, the circular graphic <NUM> may include multiple colors corresponding to other parameters (e.g., charging, paused, etc.) shown in the breakdown <NUM>, with the colored sections of the circular graphic <NUM> representing portions of the elapsed mission time <NUM> spend in each state. Here, however, all of the elapsed time <NUM> was spent cleaning, so the circular graphic <NUM> includes one section matching the color of the cleaning time parameter <NUM>.

Referring to <FIG>, an interface <NUM> presents a map <NUM> corresponding to areas cleaned by the robot <NUM> during a cleaning mission. The interface <NUM> also presents a status <NUM> of the cleaning mission, here, that the mission was stopped because the filter bag <NUM> of the evacuation station <NUM> is full and the bin <NUM> of the robot <NUM> cannot be emptied. The status <NUM> includes a selectable text indicator <NUM> that, when selected, opens an instruction interface including instructions informing the user <NUM> how to correct the problem identified in the text indicator <NUM>. For example, selecting the selectable text indicator <NUM> opens an interface <NUM>, as shown in <FIG> that includes a diagram <NUM> and text instructions <NUM> informing a user how to install a new filter bag <NUM> in the evacuation station <NUM>. Selecting continue button <NUM> on the interface <NUM> may return the user <NUM> to the mission summary interface <NUM> or to another interface allowing the user <NUM> to initiate resuming the cleaning mission.

The interface also presents a summary <NUM> of mission statistics including an area cleaned <NUM>, a number of dirt events detected <NUM>, and an elapsed mission time <NUM>. The interface <NUM> also presents a graphical representation <NUM> of a breakdown <NUM> of the elapsed mission time <NUM>. Here, the graphical representation <NUM> matches a color of the cleaning time parameter <NUM> to show that <NUM>% of the elapsed mission time <NUM> was spent cleaning.

Referring to <FIG>, an interface <NUM> presents a map <NUM> corresponding to areas cleaned by the robot <NUM> during a cleaning mission. The interface <NUM> also presents a status <NUM> of the cleaning mission, here, that the mission was stopped because of a clog in the evacuation station <NUM>. The status <NUM> includes a selectable text indicator <NUM> that, when selected, opens an instruction interface including instructions informing the user <NUM> how to correct the problem identified in the text indicator <NUM>. The interface also presents a summary <NUM> of mission statistics including an area cleaned <NUM>, a number of dirt events detected <NUM>, and an elapsed mission time <NUM>. The interface <NUM> also presents a graphical representation <NUM> of a breakdown <NUM> of the elapsed mission time <NUM>. Here, the graphical representation <NUM> matches a color of the cleaning time parameter <NUM> to show that <NUM>% of the elapsed mission time <NUM> was spent cleaning.

Referring to <FIG>, an interface <NUM> is presented on the display <NUM> of the mobile device <NUM>, showing a cleaning preferences menu <NUM> including selectable cleaning settings <NUM>, <NUM>, <NUM>, <NUM>. Selectable cleaning settings <NUM> and <NUM> allow the user <NUM> to access and change carpet boost settings and cleaning pass settings, respectively. Selectable cleaning setting <NUM> allows the user <NUM> to turn on or to turn off, via a toggle <NUM>, edge cleaning. Selectable cleaning parameter <NUM> allows the user <NUM> to access and change automatic empty settings, as shown in <FIG>. Selecting selectable cleaning parameter <NUM> opens interface <NUM> which includes a menu <NUM> of automatic empty settings. The user <NUM> may select one of the options <NUM>, <NUM>, <NUM> to set an automatic empty setting for the robot <NUM>. Check <NUM> indicates which of the options <NUM>, <NUM>, <NUM> is selected. If the user selects setting <NUM>, the robot <NUM> operates under a smart empty protocol, wherein the robot <NUM> determines when to automatically empty the bin <NUM> at the evacuation station <NUM> based on one or more conditions being satisfied. This determination can be made based on sensor data obtained on the robot <NUM>. Examples of sensor data include a bin fullness reading, navigation data, an amount of time cleaned (e.g., do not empty if the robot <NUM> has been cleaning for less than a certain amount of time), how the robot <NUM> got onto the evacuation station <NUM> (e.g., evacuates if robot <NUM> drove onto evacuation station <NUM>, but not if the robot <NUM> was manually placed on the evacuation station <NUM>), previous evacuation success or failure (empty if robot <NUM> attempted but failed to empty when last docked), etc. Other examples of sensor data include a time of day, an amount of area vacuumed, specific locations vacuumed, proximity of the robot <NUM> to the evacuation station <NUM>, locations cleaned vs. planned cleaning locations (e.g., empty before moving into the living room), a user's schedule (e.g., empty at evacuation station <NUM> when user is away from home), etc. If the user selects setting <NUM>, the robot <NUM> automatically empties the bin <NUM> any time that the robot <NUM> is placed on the evacuation station <NUM>. If the user selects setting <NUM>, the robot <NUM> does not automatically empty the bin <NUM>, meaning that the user <NUM> must initiate an evacuation of the robot <NUM> at the evacuation station (e.g., by a button on the robot or a selectable button in the mobile application <NUM> on the mobile device <NUM>).

Referring to <FIG>, presents, on the display <NUM> of the mobile device <NUM>, an interface <NUM> showing a performance history of the robot <NUM> and the evacuation station <NUM>. A summary <NUM> on the interface <NUM> includes statistics related to cleaning missions, including a number of cleaning missions completed, a total cleaning run time, a total area cleaned, a number of dirt events detected, a total automatic empty time, and a number of bins automatically emptied <NUM>. Each time the bin <NUM> of the robot <NUM> is emptied at the evacuation station <NUM>, the controller <NUM> of the evacuation station <NUM> or the controller <NUM> of the robot <NUM> sends the mobile device <NUM> an indication that the evacuation operation has been completed. Upon receipt, the mobile device <NUM> increases the count presented at item <NUM> by one.

The interface also includes a toggle <NUM> allowing the user <NUM> to switch between presenting lifetime statistics and presenting area-based statistics. For example, lifetime statistics may be based on all cleaning missions completed or attempted by the robot <NUM>. In another example, the area-based statistics may be based on all cleaning missions completed or attempted by the robot <NUM> (and possibly other robots <NUM> communicating with the mobile application <NUM>) in a particular area (e.g., a floor or a room of the user's home). Switching back and forth between lifetime statistics and area-based statistics changes the counts presented in the items in summary <NUM>. The interface <NUM> also includes a list <NUM> of recent cleaning missions. Arrows, e.g., arrow <NUM>, allow the user <NUM> to open a selected cleaning mission where an interface such as interfaces <NUM>, <NUM>, <NUM>, shown in <FIG>, may be presented to the user <NUM> with more detail about the cleaning mission.

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

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

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

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

Claim 1:
A method of evaluating an evacuation process of an autonomous cleaning robot at an evacuation station, comprising:
after an autonomous cleaning robot (<NUM>) has docked at an evacuation station (<NUM>; <NUM>), initiating an evacuation process;
characterized by:
during the evacuation, receiving data to check for errors;
if an error is detected during evacuation, changing a status of an indicator (<NUM>) to indicate the error and/or sending information indicating the error to a mobile device (<NUM>).