Patent Description:
Industrial and commercial floors are cleaned on a regular basis for aesthetic and sanitary purposes. There are many types of industrial and commercial floors ranging from hard surfaces such as concrete, terrazzo, wood, and the like, which can be found in factories, schools, hospitals, and the like, to softer surfaces such as carpeted floors found in restaurants and offices. Different types of floor cleaning equipment such as scrubbers, sweepers, and extractors, have been developed to properly clean and maintain these different floor surfaces.

For example, a typical industrial or commercial scrubber is a walk-behind or drivable, self-propelled, wet process machine that applies a liquid cleaning solution from an on-board cleaning solution tank onto the floor through nozzles. Rotating brushes forming part of the scrubber agitate the solution to loosen dirt and grime adhering to the floor. The dirt and grime become suspended in the solution, which is collected by a vacuum squeegee fixed to a rearward portion of the scrubber and deposited into an onboard recovery tank.

Floor cleaning units can also be designed as unmanned, robotic units that operate autonomously. However, there are particular challenges in automating the cleaning process of an autonomous scrubber, particularly for large, industrial or commercial floor cleaning systems that can be employed unsupervised in areas where there is pedestrian traffic. In addition to providing an adequate guidance or navigation system that prevents the unmanned, robotic unit from engaging objects or entering prohibited areas, the cleaning operation itself must be managed to ensure the unmanned, robotic unit is actually performing as intended.

A mobile robot cleaner according to the preamble of claim <NUM> is known from <CIT>.

<CIT> describes a floor monitoring device which can collect data concerning a condition of a floor and identify any notable floor condition within a monitored environment.

The present inventors have recognized, among other things, that a problem to be solved with autonomous or robotic floor cleaning equipment is the failure of such equipment to recognize its surroundings and adequately react to changes in those surroundings. The present inventors have also recognized that a problem to be solved with autonomous or robotic floor cleaning equipment is the failure of such equipment to recognize and react to deficiencies of the cleaning operation being performed.

Claim <NUM> provides a robotic floor cleaning machine which can help provide a solution to these and other problems such as by providing a robotic or autonomous cleaning machine that can utilize a control system to accurately detect when the cleaning machine may collide with an object. Thus, in order to operate properly, the robotic cleaning machine should be able to detect objects directly ahead of the cleaning machine, including ahead of the left forward and the right forward edges of the cleaning machine. Robotic cleaning machines should not only be able to detect objects, but they also should be able to process the information regarding object detection in sufficient time to avoid the object. Mapping of a workspace is also a desirable feature, which can allow the robotic cleaning machine to clean along a desired route.

The present subject matter can help provide a solution to these and other problems such as by providing a robotic or autonomous cleaning machine that can include a control system to monitor the status of the cleaning operation. For example, the control system can include sensors to determine the presence of a scrubbing pad, a squeegee, level sensors to determine the level of clean and dirty cleaning liquid, moisture sensors to determine the presence of un-vacuumed cleaning liquid behind the machine, vibration sensors, object recognition sensors and the like.

In an example, a control system for a robotic floor cleaning machine configured to perform a cleaning operation along a cleaning path can comprise a controller, and a plurality of sensors. The controller can be configured to control autonomous movement of the robotic floor cleaning machine along the cleaning path and autonomous performance of the cleaning operation. The plurality of sensors can be configured to sense a location of the robotic floor cleaning machine relative to surroundings of the robotic floor cleaning machine. At least two sensors from the plurality of sensors are configured to locate the robotic floor cleaning machine in overlapping areas of the surroundings.

In another example, a robotic floor cleaning machine can comprise a chassis, a propulsion system, a primary cleaning mechanism, a control system, and means for facilitating autonomous performance of a cleaning operation. The propulsion system can be connected to the chassis to provide movement of the chassis along a cleaning path. The primary cleaning mechanism can be mounted to the chassis to perform the cleaning operation. The control system can be mounted to the robotic floor cleaning machine to control autonomous movement of the chassis and autonomous performance of the cleaning operation. Furthermore, the robotic floor cleaning machine can comprise a liquid system mounted to the chassis to provide cleaning liquid to the cleaning operation, and a recovery system mounted to the chassis to recover liquid from the cleaning operation.

In yet another example, a robotic floor cleaning machine can comprise a chassis, a propulsion system, a primary cleaning mechanism, a control system, and means for facilitating autonomous movement of the chassis. The propulsion system can be connected to the chassis to provide movement of the chassis along a cleaning path. The primary cleaning mechanism can be mounted to the chassis to perform a cleaning operation. The control system can be mounted to the robotic floor cleaning machine to control the autonomous movement of the chassis and autonomous performance of the cleaning operation. Furthermore, the robotic floor cleaning machine can comprise a liquid system mounted to the chassis to provide cleaning liquid to the cleaning operation, and a recovery system mounted to the chassis to recover liquid from the cleaning operation.

<FIG> is a front perspective view of floor cleaning machine <NUM> having optical sensors 12A and 12B, distance sensors 14A and 14B, and a status light system <NUM>. <FIG> is a rear perspective view of floor cleaning machine <NUM> of <FIG> showing control panel <NUM>, operator platform <NUM>, and trailing mop system <NUM>. Machine <NUM> can include chassis <NUM> to which wheels 26A, 26B and <NUM> can be connected. Chassis <NUM> can support various cleaning devices, such as trailing mop system <NUM>, scrubber <NUM> and squeegee <NUM>. Chassis <NUM> can be connected to or form part of platform <NUM>. Control panel <NUM> can be in electronic communication with remote device <NUM>. <FIG> and <FIG> are discussed concurrently.

Floor cleaning machine <NUM> can be configured to clean, treat, scrub, or polish a floor surface, or perform other similar actions using, for example, trailing mop system <NUM>, scrubber <NUM> and squeegee <NUM>. An operator can stand on platform <NUM> and control machine <NUM> using control panel <NUM> and steering wheel <NUM>. Alternatively, optical sensors 12A and 12B and distance sensors 14A and 14B, as well as laser scanner <NUM> and personnel sensors 37A - 37C, can allow machine <NUM> to autonomously drive itself. The present application describes various features that can be used to facilitate autonomous cleaning and autonomous driving of machine <NUM>. The features described in the present application can be applied to any type of floor cleaning equipment, such as scrubbers, sweepers, and extractors, whether autonomous or user operated.

Platform <NUM> can support the weight of an operator in a standing position. In other examples, machine <NUM> can be configured to accommodate a sitting operator. Machine <NUM> can be of a three wheel design having two wheels 26A and 26B generally behind the center of gravity of machine <NUM> and one wheel <NUM> in front of the center of gravity. In an example, platform <NUM> can be located behind the center of gravity. Front wheel <NUM> can be both a steered wheel and a driven wheel. Front wheel <NUM> can have a device for determining the angular position of the driving direction about the steering axis. In an example, rear wheels 26A and 26B are not driven but have one or more devices, such as encoders 27A and 27B, respectively, for determining speed of rotation each wheel. In an example, rear wheels 26A and 26B are not driven but have one or more devices such as an encoder for determining speed of rotation each wheel. The angular position of each wheel 26A, 26B, and the angular position and steering angle of wheel <NUM> can be used to determine the position of machine <NUM> relative to objects sensed by optical sensors 12A and 12B and distance sensors 14A and 14B, as well as laser scanner <NUM> in mapping an environment of machine <NUM>. For example, <FIG> shows encoder 27B as having counter wheel <NUM> and optical scanner <NUM>. Optical scanner <NUM> can count timing or tick marks on counter wheel <NUM> to determine how many revolutions wheel 26B has made when mounted on spindle <NUM>, which can be translated by electronics within control panel <NUM> to a distance traveled by machine <NUM>, such as by using the diameter of wheel <NUM>.

Machine <NUM> can be electrically operated and can include a battery (e.g., battery <NUM> of <FIG>) for powering the various components of machine <NUM>. Motors within machine <NUM> (not shown) or steering wheel <NUM> can be used to turn wheel <NUM>. Additionally, wheel <NUM> can be connected to a prime mover, such as an electric motor (e.g., motor <NUM> of <FIG>), that provides propulsive force to machine <NUM>.

Scrubber <NUM> can be configured to provide a cleaning action to the floor, such rotary disc, orbital or cylindrical cleaning. Fluid from a liquid cleaning system disposed within main cowling <NUM> can be dispensed by machine <NUM> to facilitate scrubbing performed by scrubber <NUM>. A liquid system can include a liquid storage tank, a pump system, and spray nozzles, as discussed below. Squeegee <NUM> can be used to corral or wipe dirty fluid behind scrubber <NUM> and can be connected to a recovery system having a tank (e.g., tank <NUM> of <FIG>) disposed within main cowling <NUM>. A recovery system can include a suction tube (e.g., hose <NUM>), a suction motor (e.g., motor <NUM>), and a storage tank (e.g., tank <NUM>).

Optical sensors 12A and 12B, distance sensors 14A and 14B, and laser scanner <NUM>, as well as the other sensors described herein, can be collectively referred to as a guidance or navigation system for machine <NUM> when operatively connected to electronics within control panel <NUM> as described herein. Machine <NUM> can also include other types of sensor to facilitate autonomous guidance, such as ambient light sensors. Optical sensors 12A and 12B can comprise video cameras that can record the environment of machine <NUM>. Distance sensors 14A and 14B can comprise active ultrasonic sonar sensors or laser sensors that can generate high-frequency sound waves and evaluate the echo which is received back by the sensor, measuring the time interval between sending the signal and receiving the echo to determine the distance to an object. Distance sensors 14A and 14B, as well as other sensors, can be configured to sense changes in elevation so as to be able to detect stairs, ledges or other drop-offs. As such, electronics in control panel <NUM> can be configured to steer machine <NUM> away from potential hazards associated with drop-offs from stairs, steps, ledges and the like. Laser scanner <NUM> can generate three-dimensional data of the space around machine <NUM>. Personnel sensors 37A - 37C can be configured as capacitance sensors to detect the presence of people out from machine <NUM>. Personnel sensors 37A - 37C can distinguish between a solid object and a fluid or liquid filled object, such as a human, in order to make decisions concerning the navigation procedures.

Furthermore, optical sensors 12A and 12B, distance sensors 14A and 14B, laser scanner <NUM>, wheel encoders 27A and 27B, and personnel sensors 37A - 37C, as well as the various other sensors, cameras or input devices described herein, can be configured to provide redundant or overlapping input to the navigation system of the electronics of control panel <NUM> regarding the surroundings of machine <NUM>. For example, two or more of optical sensors 12A and 12B, distance sensors 14A and 14B, laser scanner <NUM>, wheel encoders 27A and 27B, and personnel sensors 37A - 37C, as well as the various other sensors, cameras or input devices described herein, can be configured to provide the navigation system with distance data to the same object, shape information to the same object, depth information to the same object or other information. As such, control panel <NUM> and the navigation system will have multiple reference points to build a map for navigation of machine <NUM> and to prevent machine <NUM> from entering areas or impacting objects that machine <NUM> should not enter or impact.

Control panel <NUM> can be connected to electronics that can be programmed to generate mapping of locations that machine <NUM> has visited. Thus, as machine <NUM> is used throughout a facility, control panel <NUM> can add new places to the map and continuously refine the mapping of existing places, using the angular position of wheels 26A, 26B and <NUM>. Machine <NUM> can use optical sensors 12A and 12B, distance sensors 14A and 14B, and laser scanner <NUM> to recognize the surroundings of machine <NUM> to place machine <NUM> into the mapped area. Both two-dimensional and three-dimensional mapping can be logged into memory of electronics connected to control panel <NUM>. Thus, routes for the cleaning paths of vehicle <NUM> can be recorded in the mapped area for various cleaning operations. Machine <NUM> can provide an indication to an operator regarding the status of the location of machine <NUM> relative to the mapped area. For example, status light system <NUM> can light up in a particular pattern or color to indicate that machine <NUM> is in a known location, is currently mapping a new location, is paused, or some other such indication.

Status light system <NUM> can be provided to communicate various statuses of machine <NUM> to the operator, other personnel or other pedestrians in the line-of sight of machine <NUM> and status light system <NUM>. Status light system <NUM> can include one or more visual indicators, such as light-emitting diodes (LEDs) or other light sources. The light bulbs can be positioned behind lens <NUM> to convey information to people in proximity of machine <NUM>. For example, a solid white light can indicate that the machine is ready for operation, green can indicate that machine <NUM> is actively and correctly performing a cleaning operation, a flashing blue light on one side of machine <NUM> can indicate that machine <NUM> is about to make a turn to the side of the flashing blue light, a yellow light can indicate that machine <NUM> has stopped the cleaning process because of a detected or sensed condition, and a red light can indicate that machine <NUM> is malfunctioning. Other types of indicators can also be used to convey information to close-by people, such as digital text displays or audio alarms from a loudspeaker, such as voice prompts and horn sounds. Status light system <NUM> can be connected to electronics within control panel <NUM> to receive information from sensors in machine <NUM> to provide predictive turning information to bystanders. For example, if an object is sensed in the path of machine <NUM> and control panel <NUM> calculates that the path of machine <NUM> needs to be rerouted, status light system <NUM> can be used to provide information to a bystander that machine <NUM> will be changing path.

While machine <NUM> is in a robot or autonomous operating mode, it can be desirable to monitor and facilitate the driving and cleaning operations being executed by the various systems of machine <NUM>. During user operation of machine <NUM>, an operator drives machine <NUM> to maintain the cleaning path and avoid colliding with stationary and moving objects that are or can potentially become in the driving path of machine <NUM>. Likewise, during user operation of machine <NUM>, an operator is present to utilize sensory input to monitor the cleaning process, such as by watching for small objects in the cleaning path or observing torn squeegees or failing scrub pads. However, during autonomous operation, machine <NUM> can include various sensing and monitoring equipment as well as various supplementary cleaning equipment to ensure machine <NUM> autonomously drives in a safe manner and to ensure the cleaning operation continues in a proper and efficient manner. Machine <NUM> can include remote device <NUM> that can be carried by a remote operator of machine <NUM> to receive updates on the operation of machine <NUM> from control panel <NUM>, or directly from a sensor, or to provide command instructions to control panel <NUM> or machine <NUM>. For example, fob <NUM> of <FIG> can communicate with control panel <NUM> via a wireless connection to convey information via indicators 92A, 92B and 92C or provide instructions via button <NUM>.

In an example, trailing mop system <NUM> can be used to absorb residual moisture left behind by squeegee <NUM>, if any. For example, squeegee <NUM> may become compromised such that dirty water from scrubber <NUM> is not properly transfered to the recovery system by squeegee <NUM>. As such, in the case of autonomous operation of machine <NUM>, it might not become noticed by an operator not at the site of machine <NUM> that liquid is being left behind. As such trailing mop system <NUM> can be used to absorb undesirable liquid trailing behind machine <NUM> during operation. Furthermore, trailing mop system <NUM> can include a sensor (e.g., dirt sensor 44A of <FIG> and <FIG>) that can alert machine <NUM> or an operator having remote device <NUM> in electronic communication with machine <NUM> of the presence of liquid in trailing mop system <NUM>. As such, a remote operator of machine <NUM> can be alerted to the possible compromise of a squeegee blade (e.g. blade <NUM> of <FIG>) in squeegee <NUM>.

As will be discussed in greater detail with reference to <FIG>, machine <NUM> can be outfitted with a variety of different instruments, systems, sensors and devices to enable and improve the autonomous operation of machine <NUM>. Examples of machine <NUM> described herein can improve the efficiency of the cleaning or treating operation such as by reducing or eliminating deficient cleaning procedures and executing a consistent cleaning or treating operation, free of variability that can be introduced from procedure imperfections or operator error or variability. Furthermore, examples of machine <NUM> described herein can improve the efficiency and operation of navigation instructions provided to machine <NUM> to improve the safety, reliability and cleaning or treating performance of machine <NUM>.

<FIG> is a side view of floor cleaning machine <NUM> of <FIG> and <FIG> showing various sensors and cleaning devices that can be used to automate operation and cleaning of floor cleaning machine <NUM>. <FIG> is an exploded view of floor cleaning machine <NUM> of <FIG> showing the location of the various sensors and cleaning devices. <FIG> is an exploded view of wheel encoder 27B for wheel 26B of robotic floor cleaning machine <NUM> shown in <FIG>.

In addition to trailing mop system <NUM>, machine <NUM> can include various supplementary cleaning devices, such as front mop <NUM> and sprayer <NUM>. Machine <NUM> can also include various hardware and sensors to facilitate and monitor the cleaning and driving operations of machine <NUM>, such as projector <NUM>, dirt sensors 44A and 44B, object recognition sensor <NUM>, floor type sensor <NUM>, vibration sensor <NUM>, cleaning media sensor <NUM>, and squeegee sensor <NUM>. As shown in <FIG>, machine <NUM> can also include tank level sensor <NUM> and tank condition sensor <NUM>.

During a cleaning operation of machine <NUM>, motor <NUM> of a propulsion system can be actuated to roll wheel <NUM> along the floor surface to be cleaned. While machine <NUM> is rolling on wheels 26A, 26B and <NUM>, motor <NUM> of scrubber <NUM> can be activated to rotate scrubbing pad <NUM>. Cleaning solution or liquid can be added to a storage space within main cowling <NUM> through cap <NUM>. Cleaning solution or liquid can be dispensed from within main cowling <NUM> to the area of scrubbing pad <NUM> via an actuator valve system (not shown), preferably to an area forward of scrubbing pad <NUM>. Suction hose <NUM> can be connected to squeegee <NUM> to vacuum up dirty cleaning solution behind scrubbing pad <NUM> and in front of the squeegee blade <NUM>. Vacuum motor <NUM> draws the dirty cleaning solution into tank <NUM>. Vacuum motor <NUM> can also be used to pump dirty cleaning solution out of tank <NUM> via hose <NUM>. Motors <NUM>, <NUM> and <NUM> can receive power from battery <NUM>. Electronics within control panel <NUM> can be used to operate motors <NUM>, <NUM> and <NUM>. The electronics within control panel <NUM> can also be used to operate various sensors and devices on machine <NUM> to ensure that the dispensing system, scrubber <NUM>, squeegee <NUM> and the recovery system are functioning correctly and performing a proper cleaning operation.

As discussed above, trailing mop system <NUM> can be used as a supplementary recovery system for squeegee <NUM>. Trailing mop system <NUM> can include another cleaning medium such, as a chamois, absorbent roller, sponge, mop, microfiber, or other absorbent material that can contact the floor behind blade <NUM> of squeegee <NUM> to wipe any water or fluid that may be left behind. Trialing mop system <NUM> can include frame member <NUM> to which the cleaning medium can be mounted. Frame member <NUM> can have a width approximately as wide as scrubber <NUM> or squeegee <NUM>. However, frame member <NUM> can be as wide as the width of machine <NUM> and the distance between wheels 26A and 26B. Trailing mop system <NUM> and frame member <NUM> can be mounted to chassis <NUM> in any suitable manner, either in a fixed manner or an adjustable manner. Trailing mop system <NUM> can be connected to a motor mechanism (not shown) and can be raised and lowered automatically by a user-initiated input at control panel <NUM>. In other examples, trailing mop system <NUM> can be raised or lowered manually, or added and removed from chassis <NUM> manually.

Sensor 44A can be provided on or in trailing mop system <NUM> to determine a moisture level in the cleaning medium or absorbent material. Sensor 44A can be mounted to frame member <NUM> or can be embedded within the cleaning medium. Sensor 44A can be configured as a moisture sensor, such as by including a pair of electrodes having a resistivity or capacitance that changes as more or less water is present. Sensor 44A can have a sensitivity level configured to indicate if squeegee <NUM> is trailing excessive water, which can be an indication of a freed or compromised squeegee blade <NUM>. For example, sensor 44A can send a moisture signal to control panel <NUM> and electronics within control panel <NUM> can be programmed to trigger an alarm (e.g., on remote device <NUM>) for an operator of machine <NUM> at a threshold that would be above incidental moisture left behind by squeegee <NUM>.

Sensor 44A can also be configured as a dirt sensor to help electronics within control panel <NUM> make decisions about the cleaning operation. Sensor 44B can be provided at front mop <NUM> to sense dirt in front of machine <NUM>. Sensors 44A and 44B can be configured as microphones to detect dirt, as is known in the art. Sensors 44A and 44B can also be configured as optical sensors or cameras to view or visually determine the presence of dirt.

With both of sensors 44A and 44B, dirt sensing can take place both before and after machine <NUM> passes over an area. Comparisons can be made between a before and an after condition to determine a level of cleanliness of the floor and if additional cleaning is needed. For example, an image (e.g., a visible spectrum image, an image outside of humanly visible spectrum, a spectroscopy image) taken by sensor 44B (or object recognition sensor <NUM>) can be compared with an image taken by sensor 44A to determine how effective scrubber <NUM> and squeegee <NUM> are currently performing. The dirt sensing method can also comprise comparing an image with a known baseline image, which can be a reference image of the actual floor that machine <NUM> is cleaning. For example, an image of a clean floor surface stored in memory within control panel <NUM> or object recognition sensor <NUM> can be compared with real time images taken by rear sensor 44B.

Electronics within control panel <NUM> can be programmed to ignore variables or imperfections in the floor, such as from painted stripes or grout lines. Comparisons between the before or reference image and the after image can be made either continuously in real-time or intermittently over programmed intervals to determine the cleanliness of the floor. For example, a dark area in the before image can indicate a dirty area that needs to be cleaned. If the dark area remains in the after image, control panel <NUM> can trigger an operator alarm (e.g., on remote device <NUM>).

Also, if a dirty area is detected in front of machine <NUM>, electronics within control panel <NUM> can take corrective action in a predictive manner. If control panel <NUM> detects a dirty area ahead of machine <NUM>, control panel can adjust the cleaning operation to be performed by scrubber <NUM>, squeegee <NUM> or a liquid system. For example, control panel <NUM> can increase the scrub pressure or quantity of liquid from the liquid system, can increase the concentration of detergent in the cleaning solution, or can slow down the speed of machine <NUM> to potentially rectify the dirty floor detected by front sensor 44B.

Front mop <NUM> can be connected to chassis <NUM> to remove objects from the cleaning path of machine <NUM>. Some objects, such as paper clip, scrap of paper, etc., may be too small to be detected by the navigation system and are not necessary to be avoided, e.g. machine <NUM> does not need to be rerouted around the object. These types of small objects can, however, become trapped under blade <NUM> of squeegee <NUM> and cause water trailing. Front mop <NUM> can include a cleaning medium, such as a dry mop, broom, damp mop, microfiber, etc. that is can be mounted at the front of chassis <NUM> in front of scrubber <NUM> to sweep this small debris before scrubbing. Front mop <NUM> can be connected to a vacuum system, such as that provided by suction motor <NUM>, or some other collection system to collect debris caught by front mop <NUM>.

Front mop <NUM> can include frame member <NUM> to which the cleaning medium can be mounted. Front mop can be connected to chassis <NUM> via any suitable connection, either in a fixed manner or an adjustable manner. Frame member <NUM> and the cleaning medium can have a width at least as wide as scrubber <NUM> or squeegee <NUM>. Frame member <NUM> can also be as wide as the width of machine <NUM> and the distance between wheels 26A and 26B. However, frame member <NUM> and the cleaning medium can be configured to be significantly wider than machine <NUM>. A wide mop can be used to complete a pre-sweep operation task more quickly. A mop wider than scrubber <NUM> or machine <NUM> can be used to reduce the number of passes required by machine <NUM> to clean the area. For example, a mop twice as wide as scrubber <NUM> can be used to sweep the floor in approximately half the time it would take scrubber <NUM> to clean the same floor area. Additionally, a pre-sweep operation can be conducted at higher speeds of machine <NUM> as compared to cleaning operations.

In some examples, front mop <NUM> can be connected to a motor mechanism (not shown) and can be raised and lowered automatically by a user-initiated input at control panel <NUM>. In other examples, front mop <NUM> can be raised or lowered manually, or added and removed from chassis <NUM> manually.

Pre-cleaning or sweeping can be performed with front mop <NUM> as a separate operation prior to scrubbing. Front mop <NUM> can be ejected or lifted upon completion so scrubbing can be started. In one example, machine <NUM> can be programmed to perform a pre-sweep of the entire floor area that is to be cleaned. The operator of machine <NUM> can then remove front mop <NUM> (or raise front mop <NUM> from the floor for storage onboard machine <NUM>) and the collected debris before machine <NUM> is programmed for cleaning using scrubber <NUM>. In another example, front mop <NUM> can be connected to a vacuum system or some other system to remove the debris and store it for later disposal. Similarly a wheel driven (unpowered) cylindrical sweeper, or motor driven sweeper, or vacuumized debris recovery system can also be used.

Machine <NUM> can include object recognition sensor <NUM>, which can provide the ability to recognize what an object is (e.g., a person, pallet of parts, etc.), not just an obstacle that will require a new route. Object recognition sensor <NUM> can take a picture or image of an object and communicate the image to control panel <NUM>. In an example, control panel <NUM> can communicate with the Internet or a local area network via a wireless communication network to access a library or database of reference images of known objects for comparison. Electronics within control panel <NUM> can compare the image obtained by object recognition sensor <NUM> to images in the reference database. Objects can be compared to determine whether it should be cleaned, should be avoided, or whether an operator should be notified. For example, the database can be provided with images of objects that should be picked-up by machine <NUM>, such as wood chips or paperclips, and objects that should be avoided for later recovery by an operator, such as manufactured parts or coinage. In an example, object recognition sensor <NUM> comprises a camera that can take images of an object in front of machine <NUM>. If objects are identified that are not in the library, control panel <NUM> can direct machine <NUM> to pick-up the object, or, if identified objects are in the library, control panel <NUM> can direct machine <NUM> to not pick-up the object. If an object has been identified for not being picked-up, control panel <NUM> can send a signal to remote device <NUM> to notify a remote operator that there is an object in the cleaning path that needs to be safely recovered. Control panel <NUM> can also reroute machine <NUM> around the object to continue the cleaning operation. Control panel <NUM> can later direct machine <NUM> to the location of the identified object to again attempt to clean that portion of the floor.

Machine <NUM> can include various sensors or devices for detecting whether or not various cleaning instruments, components, sensors or other devices are attached to machine <NUM>. For example, machine <NUM> can include cleaning media sensor <NUM>. In the illustrated example, cleaning media sensor <NUM> can be located on a non-rotating component, such as pad housing <NUM> or a pad skirt, in close proximity to pad <NUM>. Media sensor <NUM> can be in electronic communication with control panel <NUM> and can send a signal to control panel <NUM> if pad <NUM> is not detected. If control panel <NUM> receives an indication that pad <NUM> is not present, which can indicate pad <NUM> was not mounted to housing <NUM>, not mounted properly to housing <NUM> or has become separated or partially separated from housing <NUM> during the cleaning operation, control panel <NUM> can send a wireless signal to remote device <NUM> to notify a remote operator of machine <NUM>. Additionally, control panel <NUM> can stop operation of one or both of scrubber <NUM> and machine <NUM>.

Likewise, machine <NUM> can include squeegee sensor <NUM>. In the illustrated example, sensor <NUM> can be located on a frame member of squeegee <NUM>, such as squeegee cover <NUM>, in close proximity to blade <NUM>. Sensor <NUM> can be in electronic communication with control panel <NUM> and can send a signal to control panel <NUM> if blade <NUM> is not detected. Also, squeegee sensor <NUM> can be configured to sense if all of squeegee <NUM> detaches from machine <NUM> at corresponding mounting hardware. If control panel <NUM> receives an indication that blade <NUM> is not present, which can mean blade <NUM> was not mounted to cover <NUM>, not mounted properly to cover <NUM> or has become separated or partially separated from cover <NUM> during the cleaning operation, control panel <NUM> can send a wireless signal to remote device <NUM> to notify a remote operator of machine <NUM>. Additionally, control panel <NUM> can stop operation of one or both of squeegee <NUM> and machine <NUM>.

Sensors <NUM> and <NUM> can comprise a proximity sensor of any known variety, such as capacitive-, Doppler-, eddy current-, inductive-, laser-, magnetic- and optical-based sensors. Sensors <NUM> and <NUM> can be configured to directly sense the cleaning component directly or can be configured to detect an operable component mounted to the cleaning component, such as a reflector or magnet. Sensors <NUM> and <NUM> can also be mounted to view or contact the cleaning component through a window in the structural member of machine <NUM> to which they are mounted.

The recovery system can also include one or more sensors to facilitate operation of the recovery system. For example, tank level sensor <NUM> and tank condition sensor <NUM> can be included in the recovery system to communicate information to control panel <NUM>. Tank level sensor <NUM> can determine the level of liquid or dirty cleaning solution in recovery tank <NUM>. Sensor <NUM> can determine if tank <NUM> is full or nearly full. Additionally, sensor <NUM> can be configured to provide indications of the level of tank <NUM> as it progresses from being empty to full. In various examples, sensor <NUM> can determine the level at a plurality of discrete levels or at continuous levels. In an example, sensor <NUM> can comprise a conventional fluid level sensor, such as an ultrasonic sensor, a capacitive sensor, an optical interface sensor, or a microwave sensor. Sensor <NUM> and control panel <NUM> can also be configured to estimate a time remaining before recovery tank <NUM> is full. In an example, control panel <NUM> can reduce or shut-off the flow of dirty cleaning solution to tank <NUM> before activating the closure of a shut-off valve in recovery tank <NUM> if control panel <NUM> receives a signal from sensor <NUM> indicating tank <NUM> is nearly full or full. Control panel <NUM> can send a wireless signal to remote device <NUM> to notify a remote operator of machine <NUM> that tank <NUM> is full. Additionally, control panel <NUM> can stop operation of machine <NUM> if tank <NUM> is indicated by sensor <NUM> as being full. In another example, sensor <NUM> or an additional sensor can be positioned on tank <NUM> to determine the level of cleaning solution remaining within tank <NUM>.

In another example, sensor <NUM> can be configured as a dirt sensor for recovered liquid. In such an example, sensor <NUM> can be configured to detect the level of dirt in the solution, such as by determining how much light can pass through the recovered liquid. Electronics within control panel <NUM> can compare the signal from sensor <NUM> to a threshold cleanliness level stored in memory in control panel <NUM>. If excessively dirty water is sensed, control panel <NUM> can take corrective action in a reactive manner. If control panel <NUM> detects dirty water, control panel can adjust the cleaning operation to be performed by machine <NUM>. For example, control panel <NUM> can adjust the route of the cleaning path so that machine <NUM> makes an additional pass of the dirty area. Control panel <NUM> can be configured to determine if enough cleaning solution remains in tank <NUM> to complete a cleaning operation.

Tank condition sensor <NUM> can be attached to tank <NUM> to evaluate a condition of tank <NUM>, such as the cleanliness of tank <NUM>. Sensor <NUM> can provide an indication at control panel <NUM> as to whether or not tank <NUM> needs to be cleaned. In an example, sensor <NUM> can be an olfactory sensor that can determine when odor levels reach or exceed a predetermined threshold. In another example, sensor <NUM> can be configured as a capacitive sensor positioned on the outside of tank <NUM> near a drain and can sense if dirt, grime or debris is building up inside tank <NUM> near the drain. In one scenario, machine <NUM> could autonomously park itself in a cleaning closet after completing a cleaning operation and have recovery tank <NUM> full of dirty cleaning solution, which, after a period of time can begin to have an undesirable or unpleasant smell. Sensor <NUM> can be used to alert an operator to this condition so that recovery tank <NUM> can be cleaned.

Machine <NUM> can be provided with vibration sensor <NUM> that can be configured to detect potential fault conditions. In an example, vibration sensor <NUM> can be configured as a microphone that can detect changes in sound that may indicate a fault condition. For example, a microphone can listen for loud or unusual sounds that may be correlated to an object impacting machine <NUM>, grinding of pad <NUM>, vibration from an offset pad <NUM>, splashing cleaning solution or the like. Sounds monitored by sensor <NUM> can be compared to a library of sound recordings of various fault conditions for comparison. The library of fault condition sound recordings can be stored in memory in control panel <NUM> or can be stored remotely in a database (e.g., the Internet or a local area network) that control panel <NUM> can access via a wireless communicate signal. Sensor <NUM> can monitor for operation of machine <NUM> that falls outside of a sound or vibration signature that corresponds to steady state operation. For example, a fault condition might be a vibration frequency that would match vibration of scrubber <NUM> if pad <NUM> is off center. Vibration sensor <NUM> can also be positioned and configured to sense loading of platform <NUM>. If control panel <NUM> detects that a passenger has boarded machine <NUM> during autonomous operation, control panel <NUM> can be configured to cease operating until the load has been removed.

In another example, vibration sensor <NUM> can be configured as an accelerometer or other vibration sensor that can detect changes in vibration that may indicate a fault condition. Vibration sensor <NUM> can be connected to chassis <NUM> to monitor for undesirable acceleration of machine <NUM>. For example, vibration sensor <NUM> can monitor for unnecessary or undue acceleration of machine <NUM> along the cleaning path, which may provide an indication of an undesirable cleaning speed, or vibration sensor <NUM> can monitor for acceleration of machine <NUM> in an undesirable direction, such as an upward acceleration when machine <NUM> impacts a bump. Detected fault conditions can be transmitted to remote device <NUM> to provide a remote operator an indication that a fault condition may have occurred. Additionally, control panel <NUM> can stop operation of machine <NUM> if a sound or vibration is sensed that may be detrimental to machine <NUM> or the cleaning operation.

Machine <NUM> can include floor type sensor <NUM> that can enable control panel <NUM> to distinguish between different floor surfaces. For example, sensor <NUM> can be configured to distinguish between floor surfaces of different textures, such as smooth or rough, or resiliency, such as hard or soft. Smooth or hard surfaces can be indicative of concrete or tile, while rough or soft surfaces can be indicative of carpet or turf. In various examples, sensor <NUM> can comprise a vision system, a sonar sensor, a laser, or other known sensing methods that can be used to distinguish floor types. For example, sensor <NUM> can measure the reflection of an initial signal to determine a magnitude of the initial signal that is returned to sensor <NUM>, with lower magnitudes of reflected signal possibly indicating softer or rougher surfaces. Signals from sensor <NUM> can be compared by control panel <NUM> to a library of known floor type signals that can be stored in control panel <NUM> or a remote database for comparison over a wireless communication signal. Control panel <NUM> can include instructions for reacting to signals from sensor <NUM> indicating sensed floor types. For example, control panel <NUM> can be programmed to prevent machine <NUM> from entering a carpeted area when set-up for scrubbing of a hard floor such as concrete. Control panel <NUM> can send a signal to remote device <NUM> if it is determined that machine <NUM> has entered an undesirable or unauthorized area. Additionally, control panel <NUM> can stop operation of machine <NUM> if machine <NUM> enters an area having a floor type that machine <NUM> has been instructed to avoid.

Machine <NUM> can include sprayer <NUM> for operating machine <NUM> in, for example, a carpet pre-spray mode. A carpet pre-spray mode can be used for pre-spraying carpet prior to cleaning with scrubber <NUM> or extraction with a vacuum system in examples where a vacuum cleaning system is employed in place of or combination with scrubber <NUM>. Sprayer <NUM> can be connected to a tank of liquid that can be sprayed onto the floor in front of machine <NUM> via a nozzle or the like with the use of a pump. In an example, sprayer <NUM> can use the same liquid as the liquid system stored in the tank within main cowling <NUM> and can use the same pump as the liquid system uses for providing cleaning solution or liquid to scrubber <NUM>. In another example, machine <NUM> can use the aforementioned liquid system to perform the pre-spraying operation. Sprayer <NUM> can also be connected to a detergent tank within the liquid system of machine <NUM> to apply detergent during the pre-spraying operation. However, sprayer <NUM> can be used to apply clear water without detergent to perform a clean water rinse.

Pre-spray PS applied by sprayer <NUM> can be applied along the intended cleaning or extraction path. Machine <NUM> can follow the intended path before the cleaning or extraction process at a faster or slower pace than what is conducted during the subsequent cleaning or extraction process. Autonomous pre-spraying can facilitate the cleaning operation because pre-spraying can be a difficult operation to manually perform. For example, it can sometimes be difficult for an operator to see where the subsequent paths of machine <NUM> should be because the pre-spraying dampens and darkens the entire carpeted area, making it difficult to see where the next pre-spraying path should be or making the entire path for subsequent cleaning operation more difficult to see. The pre-spraying operation can save labor expense by freeing the operator to do other tasks while the pre-spraying operation is autonomously performed. Additionally, autonomous performance of the pre-spraying operation can reduce the total time to perform the pre-spraying operation by more precisely executing the pre-spray route, e.g., avoiding double spraying of portion of the floor that can sometimes occur during manual pre-spraying operations.

Machine <NUM> can include projector <NUM> that can be configured to project a route of the cleaning path on the floor surface to be cleaned. Projector <NUM> can be configured to project a laser, LED, or other light source onto the floor ahead of machine <NUM> to show the intended path of machine <NUM>. The intended path can be projected a short distance (e.g., <NUM> - <NUM> feet / <NUM> - <NUM>) in front of machine <NUM> as machine <NUM> moves along the intended path of the route. Projector <NUM> can thus facilitate autonomous movement of machine <NUM> by warning pedestrians and other bystanders of the route that machine <NUM> is taking. Light beam LB can be projected to the left or right of machine <NUM> as a turn is approached to notify pedestrians of a forthcoming movement of machine <NUM>.

Remote device <NUM> can be configured to communicate with control panel <NUM> and provide a remote operator of machine <NUM> with information regarding the operation and status of machine <NUM>, including the liquid system, scrubber <NUM>, squeegee <NUM>, the recovery system and the navigation system, as is discussed in greater detail with reference to <FIG>. Remote device <NUM> can also be configured to provide a command input to control panel <NUM> to stop or change operation of machine <NUM> or the cleaning operation.

<FIG> is a schematic diagram of control panel <NUM> for floor cleaning machine <NUM> of <FIG> and <FIG> showing graphical user interface panel <NUM>, status bar <NUM>, wireless communication link <NUM> and wirelessly connected portable fob <NUM> having indicator lights 92A, 92B and 92C.

As discussed above, control panel <NUM> can be configured to operate the various sub-systems, components, sensors and devices of machine <NUM> from a single location where an operator can stand on platform <NUM>. Control panel <NUM> therefore can include various hardware and software components for operating machine <NUM>. For example, control panel <NUM> can include user interface devices, processors, memory and the like for receiving input from various items, such a signals from sensors 44A, 44B, <NUM>, <NUM>, <NUM>, <NUM>, <NUM>, <NUM> and <NUM>, and providing output to various items, such as fob <NUM> and motors <NUM>, <NUM> and <NUM>. Control panel <NUM> can include various forms of digital memory for storing the various libraries and databases described herein, as well as programming for executing various cleaning instructions and commands, as described herein. In one example, control panel <NUM> is can include a portable computing device, such as a tablet computer, as the operator interface. The portable computing device can be configured to have complete or partial control over the operations of machine <NUM>.

Control panel <NUM> can include a wireless hub, such as wireless communication link <NUM>, that permits control panel <NUM> to communicate with devices external to machine <NUM>. Communication link <NUM> allows control panel <NUM> to access data and control other devices or autonomous machines. In one example, wireless communication link <NUM> communicates with a wireless local area network that permits communication with a local database or server at the location of machine <NUM> (e.g., within the same facility). In another example, wireless communication link <NUM> can be a Bluetooth communication device. In another example, wireless communication link <NUM> is able to connect to the Internet via various public or private signals, such as cellular or <NUM> networks and the like. Likewise, wireless communication link <NUM> can be configured to communicate directly with remote device <NUM> and fob <NUM>, or indirectly, such as through a network or Internet connection.

Fob <NUM> can comprise a portable device that can be carried by an operator of machine <NUM> while machine <NUM> is operating autonomously. In an example, fob <NUM> is sized and shaped to be small enough to fit into a pocket of an operator of machine <NUM>. As such, fob <NUM> and wireless communication link <NUM> can transmit information between each other over a distance so that the operator can leave the immediate vicinity of machine <NUM> to do other activities, such as in the same facility as machine <NUM>. In examples, fob <NUM> communicates with Bluetooth or a wireless local area network.

In the example of <FIG>, fob <NUM> is configured as a pocket-sized device having three visual indicator lights 92A, 92B and 92C and button <NUM>. In an example, light 92A can be a green light, light 92B can be a yellow light, and light 92C can be a red light. Lights 92A, 92B and 92C can be activated by control panel <NUM> to indicate various statuses of machine <NUM>. For example, a solid green light can indicate machine <NUM> is operating properly as desired, a red light can indicate that machine <NUM> has stopped operating and cannot continue without operator interaction, and a yellow light can indicate that machine <NUM> has encountered a condition that needs operator attention, but that machine <NUM> can continue to operate. In other examples, lights 92A, 92B and 92C can blink in predetermined patterns to provide more specific information, such as a potentially failed blade <NUM>, a potentially failed pad <NUM> or a full recovery tank <NUM>. Lights 92A, 92B and 92C can also be turned on to indicate that a cleaning operation has been completed. Additionally, lights 92A, 92B and 92C can be turned on to provide information relating to the autonomous navigation of machine <NUM>, such as to provide information that an object is blocking the cleaning path route, that machine <NUM> is lost, or that machine <NUM> is stalled.

Fob <NUM> can also include button <NUM> or other interface components to allow an operator of machine <NUM> to remotely stop operation of machine <NUM>. Although explained with reference to remote device <NUM> comprising fob <NUM>, other portable remote devices can be used with control panel <NUM> and machine <NUM>. In other examples of portable device <NUM>, a handheld or mobile computing device, such as a phone, notebook computer or tablet computer can be used to communicate explicit, textual information to the operator regarding the state of machine <NUM> or the cleaning operation. In various examples, fob <NUM> includes a graphical display that can show pictures taken by a camera on machine <NUM>. For example, object recognition sensor <NUM> can take a picture of an obstruction in front of machine <NUM> for display on fob <NUM> for a remote operator to evaluate.

Control panel <NUM> can visually communicate the intended route for the cleaning path of machine <NUM> using graphical user interface (GUI) panel <NUM>. GUI panel <NUM> can comprise a touch screen as is known in the art, a liquid crystal display or any similar digital or analog screen for communicating information. GUI panel <NUM> can include indicia in the form of a map, an icon, text, or other identifiable representation. For example, GUI panel <NUM> can graphically show a representation of cleaning route <NUM> using machine icon <NUM> relative to walls <NUM> and objects <NUM>. GUI panel <NUM> can allow for an operator to choose between multiple routes, such as route <NUM> and an alternative route.

A route for machine <NUM>, can be programmed by a plurality of different methods. In one example, in a "copy-cat" mode, machine <NUM> can learn a route by copying the exact route driven by an operator using platform <NUM> and steering wheel <NUM>. For example, control panel <NUM> can learn the turns of route <NUM>, such as the seven legs of route <NUM> shown in <FIG>. Control panel <NUM> can be programmed to copy cleaning operation steps initiated by an operator during the "copy-cat" mode, such as doubles-scrub actions or changes in cleaning fluid flow rate. Control panel <NUM>, however, can include programming to smooth out the path driven by the operator. For example, control panel <NUM> can take out slight drifting or back-and-forth driving patterns of the operator, or fill in any missed areas by the operator. Control panel <NUM> can also optimize the overlap of adjacent legs of the cleaning path forming each route to minimize double cleaning and ensure complete cleaning coverage.

In another example, in a "fill-in" mode, control panel <NUM> can generate a route for cleaning the interior area of a perimeter determined by the operator. The operator can drive machine <NUM> around the outer boundaries of an area and control panel can optimize the route for machine <NUM> to clean that area. For example, machine <NUM> could be ridden by an operator adjacent walls <NUM> in <FIG> to form a rectangular shaped perimeter and control panel could generate the cleaning route, such as by generating the seven legs of route <NUM> shown in <FIG>. The operator can also program one or more islands <NUM> into the area that are no-go or "keep out" zones for machine <NUM>. Thus, because machine <NUM> will have driven the demarcation lines for the route, machine <NUM> will also know the distances between the boundaries of the demarcated area and can determine the optimal route and overlap for each leg of the cleaning path route. Control panel <NUM> can provide feedback confirming that the area within the perimeter has been mapped, such as by lighting up status light system <NUM>.

Whether machine <NUM> utilizes a "copy-cat" mode or a "fill-in" mode can be a user selected option on control panel <NUM>. Control panel <NUM> can execute the "copy-cat" mode or a "fill-in" modes by utilizing the two-dimensional and three-dimensional mapping conducted by optical sensors 12A and 12B, distance sensors 14A and 14B, and laser scanner <NUM> described above, as well as the positional data obtained for wheels 26A, 26B and <NUM>. Thus, the location of objects detected by optical sensors 12A and 12B, distance sensors 14A and 14B, and laser scanner <NUM> can be plotted relative to the location of machine <NUM> using the positional wheel information.

For rooms or areas that are repetitively cleaned, control panel <NUM> can be programmed to minimize or mitigate the risk of machine <NUM> imparting repetitive wear damage to the floor to be cleaned. In one example, control panel <NUM> can be programmed to plot route <NUM> along walls <NUM> a random distance from walls <NUM> to form buffer zone <NUM>. Machine <NUM> can be programmed to nominally space cleaning route <NUM> a distance of approximately <NUM> inches (~<NUM>) from walls <NUM>, e.g., buffer zone <NUM> is approximately <NUM> inches (~<NUM>) wide. If the nominal spacing is repeated during subsequent cleaning operations, over time a distinct line can begin to form between the cleaned and un-cleaned area showing the cleaning path. Thus, control panel <NUM> can be programmed to vary the nominal spacing distance in successive cleaning operations. Cleaning route <NUM> can be varied inside and outside of the nominal spacing distance. For example, the first time machine <NUM> cleans a room, the nominal spacing distance can be used; the next time machine <NUM> cleans that same room, the cleaning path can be moved to be spaced approximately <NUM> inches (~<NUM>) from the wall; in the next cleaning operation, the cleaning path can be moved to be spaced approximately <NUM> inches (~<NUM>) from the walls; and so on.

In additional examples, control panel <NUM> can be programmed to add similar slight variation to the entire path of route <NUM>, not just those portions along wall <NUM>. For example, a small, random lateral offset <NUM> can be added to route <NUM> of the cleaning path to one or the other side of the middle of route <NUM> to avoid visible wear patterns from forming in regularly cleaned areas.

As discussed above, control panel <NUM> can be programmed to use optical sensors 12A and 12B, distance sensors 14A and 14B, and laser scanner <NUM> to guide machine <NUM> autonomously. As such, machine <NUM> can be programmed to always know where it is within a particular building or facility. Control panel <NUM> can be programmed to recognize the same objects or type of object repeatedly recognized as being in a cleaning area or in the cleaning path. For example, using input from object recognition sensor <NUM>, control panel <NUM> can catalogue the frequency that a particular object, such as object <NUM> or walls <NUM>, is in the cleaning area in the same place. Thus, control panel <NUM> can learn where permanent objects such as walls or semi-permanent objects, such as vending machines, are located vs. where movable objects, such as chairs, are located. For objects that control panel <NUM> recognizes as having not moved from previous cleaning operations, control panel <NUM> can execute the cleaning path route without alteration. For objects that control panel <NUM> recognizes as typically being in the same place, but not currently in place, control panel <NUM> can decide to clean the space that is not currently occupied. As an illustration of this example, control panel <NUM> can recognize that tables in a cafeteria are typically there and can accordingly execute a cleaning path route that travels between the tables. However, if control panel <NUM> recognizes that one or more of the tables are not present, control panel can recognize that the tables are not present and can make a decision to change the route of the cleaning path to include cleaning the areas where the tables typically reside. For objects that control panel <NUM> recognizes are in random locations for each cleaning operation, control panel <NUM> can recognize that these are potentially moving objects and can continue conducting the desired cleaning operation until the recognized object comes within a buffer zone of machine <NUM>, as can be implemented using sensors 12A and 12B, distance sensors 14A and 14B, and laser scanner <NUM>. If the identified moving object enters the machine buffer zone, control panel <NUM> can slow down movement of machine <NUM> and eventually stop machine <NUM> if the identified moving object continues to obstruct the cleaning path. Control panel <NUM> can be programmed to restart the cleaning operation, after a delay period, if the identified moving object is no longer detected. Alternatively, after the delay period, if the identified moving object remains in the cleaning path, control panel <NUM> can instruct machine <NUM> to move around the object and restart the cleaning operation along the route (e.g., route <NUM>) of the cleaning path on the other side of the object. As an illustration of this example, control panel <NUM> can recognize that a forklift typically operates in a warehouse and can therefore recognize that the forklift may be moving in and out of the cleaning path route, or may be temporarily parked on a single location for a period of time; control panel <NUM> can therefore take appropriate action to continue the cleaning operation without having to completely stop or wait for operator interaction as the forklift operates in the presence of machine <NUM>.

Control panel <NUM> can be programmed to perform different actions depending on where it is located, what day of the week the cleaning operation is being performed, or what time of day the cleaning operation is being performed. For example, after machine <NUM> recognizes where it is at, as previously discussed, control panel <NUM> can be programmed to change the cleaning operation based on a time of day. For example, if control panel <NUM> recognizes that machine <NUM> is located in a warehouse during workday hours, say from <NUM>:<NUM> am to <NUM>:<NUM> pm, control panel <NUM> can be programmed to conduct a quick cleaning operation that dispenses the least amount of moisture on the floor and takes the least amount of time. However, if control panel <NUM> recognizes that machine <NUM> is located in a warehouse during non-workday hours, say from <NUM>:<NUM> pm to <NUM>:<NUM> am, control panel <NUM> can be programmed to conduct a more thorough cleaning operation that might be slower and dispenses a greater amount of moisture on the floor. Factors that can be adjusted by control panel <NUM> to adjust the speed and thoroughness of the cleaning operation can include flow rate of the cleaning solution, brush pressure, speed of machine <NUM>, use of cleaning additives, etc. Furthermore, control panel <NUM> can be configured to self-start a particular cleaning operation at scheduled times and intervals. For example, the aforementioned quick cleaning operation can be programmed into control panel <NUM> to be autonomously executed at <NUM>:<NUM> pm during a break period of a workday, while the aforementioned more thorough cleaning operation can be programmed into control panel <NUM> to be autonomously executed at <NUM>:<NUM> am while the warehouse is unoccupied.

In another example, machine <NUM> can park itself in a docking station. The docking station can be configured to autonomously reload machine <NUM> for additional operations. For example, the docking station can be configured to wirelessly or with wires recharge battery <NUM>, fill battery <NUM>, fill the solution tank within cowling <NUM>, drain recovery tank <NUM>, rinse recovery tank <NUM>, clean and/or change cleaning mediums, such as pad <NUM>, fill a detergent tank, and perform other maintenance or diagnostic procedures.

Control panel <NUM> can be programmed to provide status updates to an operator of machine <NUM> at GUI panel <NUM>. For example, at least one of the amount of time, the amount of solution, or the battery capacity needed to complete a selected cleaning operation can be displayed at status bar <NUM>. GUI panel <NUM> can also provide an indication of there is sufficient time, such as before workday hours begin, to complete the selected cleaning operation, or sufficient battery power or cleaning solution to complete the selected cleaning operation. As such, control panel <NUM> can be operatively coupled to battery <NUM>, tank <NUM>, the tank within main cowling <NUM> and other sensors of machine <NUM> and GUI panel <NUM>.

Additionally, control panel <NUM> can be programmed to provide remote device <NUM>, such as fob <NUM>, a status update, including a project completion status or estimate. Control panel <NUM> can estimate how much time will be required to complete the selected cleaning operation and can communicate to fob <NUM> an indication that the cleaning operation is complete, such as by flashing all three of lights 92A -92C or flashing all three of lights 92A -92C. Additionally, control panel <NUM> can provide a warning that the cleaning operation is about to be complete, such as by flashing one or more of lights 92A - 92C at preset amount of time, such as five minute, before the cleaning operation is complete. The completion warning can allow the operator of machine <NUM> time to travel to machine <NUM> so that the operator can arrive before or at the time machine <NUM> will be ceasing operation. Remote device <NUM> can also be configured to vibrate or produce an audible sound to alert a remote operator of machine <NUM> to a condition of the driving or cleaning process.

Control panel <NUM> can be programmed to coordinate operation of machine <NUM> with other robotic floor cleaning machines. In an example, control panel <NUM> can include hardware to permit machine <NUM> to transmit a signal that scans for signals from other machines using similar hardware in a similar control panel as control panel <NUM>. Once the machines recognize each other, they can be programmed to communicate and exchange information. For example, control panel <NUM> can include a Bluetooth transmitter, or another wireless communication device, to recognize when there are one or more additional floor cleaning machines operating in a common area so that control panel <NUM> can coordinate execution of the cleaning operation with the other machines. In an example, the route (e.g., route <NUM>) of the cleaning path can be divided between machines to expedite execution of the cleaning operation, e.g., reduce the time it takes to carry out the cleaning operation. In an example, the entire cleaning plan can be shared amongst all of the machines, or only a portion of the route of the cleaning path can be communicated to particular machines for cleaning only a portion of the total area to be cleaned. The communication between machines can ensure that the machines do not interfere with operation of each other. For example, each machine can have only a portion of the route of the cleaning path so that they do not collide along the route. Also, the communication between machines can actively communicate to prevent collisions, such as by actively communicating the location of each connected machine to every other machine with a common frame of reference, such as the floor surface to be cleaned or the route of the cleaning path. The location of each machine can be transmitted in coordinate form or the like for plotting or locating in the mapped area.

Additionally, machine <NUM> can be configured to operate with other autonomous guided vehicle (AGV) systems that are different than machine <NUM>. As such, control panel <NUM> can include various communication systems for transmitting and receiving information using a plurality of protocols. For example, other vehicles, such as fork trucks, delivery vehicles, etc., might be working or operating in the same area as machine <NUM>. Control panel <NUM> can be used to communicate the location of machine <NUM> to these vehicles in a format those vehicles can use to make adjustments to their operation, e.g., avoid collisions, engage a vehicle-passing protocol, etc. Likewise, control panel <NUM> can adjust the operation of machine <NUM> to avoid collision with other AGVs.

Vehicle <NUM> can be provided with the navigation system described herein as a modular kit. Optical sensors 12A and 12B, distance sensors 14A and 14B and laser scanner <NUM>, as well as the other sensors and devices described herein, can be connected to vehicle <NUM> using releasable couplers, such as suction cups, ball and socket couplers and the like, such that the devices can be attached to different machines. Likewise, the electronics of control panel <NUM> and other components and wiring of machine <NUM> and the navigation system can be provided with wire harnesses and connectors that allow for quick and easy physical and electrical installation of components to a machine. Control panel <NUM> can be programmed to utilize optical sensors 12A and 12B, distance sensors 14A and 14B and laser scanner <NUM> with different machines. In particular, the various geometric footprints, envelopes and dimensions of any particular machine can be entered into memory in control panel <NUM>. For example, the different length, width, and height dimensions, wheel configurations (e.g., wheel base), and cleaning deck configurations (e.g., deck width) can entered and stored into control panel <NUM> to change how the navigation software within control panel <NUM> determines the navigation and cleaning commands, such as turning radius and distances from objects. Optical sensors 12A and 12B, distance sensors 14A and 14B and laser scanner <NUM>, as well as the other sensors and devices described herein, can also be adapted to operate with different machines via software or firmware configurations based on the entered footprints, envelopes and dimensions. Control panel <NUM> can include user input options to allow an operator to input the particular parameters of a machine to be used with the modular navigation system. Alternatively, control panel <NUM> can be automatically updated, such as via firmware, with the particular parameters of a machine from a technician or factory update to avoid data entry errors.

The autonomous or robotic floor cleaning equipment described herein provides advantages over manual systems and previous autonomous systems. More efficient autonomous operation provided by the systems and methods described herein can reduce labor costs by allowing an operator of an autonomous cleaning machine to perform other tasks while the autonomous machine operates. Additionally, the cleaning operations can be more consistently or systematically performed, such that spots are not missed or cleaning is duplicated, thereby reducing or eliminating rework. Autonomous machines can also be programmed to concentrate on high-use or particularly dirty areas rather than manual operators that tend to clean all areas equally, including those that have not been dirtied. Autonomous cleaning system are particularly advantageous for use in large open areas where the cleaning operation involves long intervals of repeated, back-and-forth operations. The systems and methods described herein facilitate and improve autonomous navigation and autonomous cleaning operations to expand the advantageous use of autonomous cleaning machines to other spaces that are not as simply cleaned as open areas. For example, systems and methods described herein allow the autonomous cleaning machine to be used in tight spaces that may utilize unique, non-repetitive route instructions or in spaces where pedestrian traffic might be present. The systems and methods of autonomous navigation and cleaning described herein can also reduce cleaning time of autonomous machines be reducing the amount of time the autonomous machine may be performing an ineffective cleaning operation, such as when a cleaning pad or squeegee blade fails.

In embodiments, the plurality of sensors comprise at least two sensors comprising: a dirt sensor configured to detect objects alongside the machine along the cleaning path; and a capacitance sensor configured to detect objects alongside the machine above the cleaning path.

In embodiments, the at least two sensors comprise: a wheel position sensor configured to determine a distance the machine has moved in the surroundings; and a laser sensor configured to sense a distance between the machine and an object in the surroundings.

In embodiments, the controller further comprises: a chassis configured to move along the cleaning path; a cleaning mechanism mounted to the chassis to perform the cleaning operation; means for facilitating the autonomous performance of the cleaning operation; and means for facilitating the autonomous movement of the chassis.

In embodiments, the means for facilitating autonomous performance of the cleaning operation comprises a sensor for the cleaning mechanism in communication with the control system and configured to determine the presence of a cleaning medium connected to the cleaning mechanism.

In embodiments, the means for facilitating autonomous performance of the cleaning operation comprises a pre-sprayer in communication with the control system and mounted to a front end of the chassis to spray into the cleaning path.

In embodiments, the controller includes a clock and the control system can perform different cleaning operations based on a time of the clock.

In embodiments, the controller includes a display and the control system is configured to provide an indication of a magnitude of a parameter required for completing the cleaning operation.

In embodiments, the controller can vary a distance of a route of the cleaning path from a fixed object to avoid generating wear patterns.

In embodiments, the controller can vary an overlap of the cleaning path in a route of the cleaning path to avoid generating wear patterns.

In embodiments, the controller includes a clock and the control system can provide a time indicator correlating to a length of time for completing a route of the cleaning path.

In embodiments, the controller includes a graphical display that is configured to provide an indication of a magnitude of a parameter required for completing the cleaning operation.

In embodiments, the controller includes a sensor for determining the presence of objects in a route of the cleaning path, wherein the control system can make navigation decisions based on a frequency of the objects in the cleaning path.

In embodiments, the controller can receive inputs for a size of the chassis that can be used to determine a route for the cleaning path.

In embodiments the control system further comprises: a propulsion system connected to the chassis to provide movement of the chassis along a cleaning path; a liquid system mounted to the chassis to provide cleaning liquid to the primary cleaning mechanism; and a recovery system mounted to the chassis to recover liquid from the cleaning operation. Especially, the controller may learn a route for the cleaning path via manual operation of the propulsion system. Especially, the controller can determine a route for a cleaning area within a perimeter determined via manual operation of the propulsion system. Especially, the means for facilitating autonomous performance of the cleaning operation may comprise a sensor for the liquid recovery system in communication with the control system. Especially, the control system may further comprise a recovery tank for the recovery system, wherein the sensor for the liquid recovery system comprises a liquid level sensor for the recovery tank. Especially, the sensor for the liquid recovery system may comprise an olfactory sensor for the recovery tank. Especially, the sensor for the liquid recovery system may be configured to determine the presence of a squeegee blade connected to the liquid recovery system.

Claim 1:
A control system for a robotic floor cleaning machine (<NUM>) configured to perform a cleaning operation along a cleaning path, the control system comprising:
a controller configured to control autonomous movement of the robotic floor cleaning machine (<NUM>) along the cleaning path and autonomous performance of the
cleaning operation; and
a plurality of sensors (12A, 12B, 27A, 27B, <NUM>, 37A-37C, 44A, 44B, <NUM>, <NUM>, <NUM>, <NUM>, <NUM>, <NUM>, <NUM>) configured to sense a location of the robotic floor cleaning machine (<NUM>) relative to surroundings of the robotic floor cleaning machine (<NUM>);
wherein at least two sensors from the plurality of sensors (12A, 12B, 27A, 27B, <NUM>, 37A-37C, 44A, 44B, <NUM>, <NUM>, <NUM>, <NUM>, <NUM>, <NUM>, <NUM>) are configured to sense a location of
the robotic floor cleaning machine (<NUM>), wherein at least two of those sensors are operable to provide redundant location input to the control system,
characterized in that the control system comprises
first and second debris sensors (44A, 44B) in communication with the controller and positioned to detect debris in the cleaning path for comparison to a baseline reference, and wherein the first and second debris sensors (44A, 44B) are configured to sense dirt both before and after the machine (<NUM>) passes over an area.