Patent Publication Number: US-2022233046-A1

Title: Robotic mop

Description:
FIELD 
     The described embodiments relate generally to automated cleaning devices. More particularly, the present embodiments relate to a robotic mop. 
     BACKGROUND 
     People regularly face the burden of any number of different chores in the home and/or other environments. Examples of such chores include floor cleaning (such as vacuuming, mopping, and so on), dusting, dishes, laundry, cooking, washing windows, washing walls, wiping down counters and cabinets, picking up clutter, and so on. The character of chores needed to be performed may change over time, but the amount of chores and/or burden does not appear to diminish. If anything, the burden may have increased over time as people who may previously have performed these chores as dedicated homemakers may have had to enter the workforce, greatly reducing available time for completing household and/or other chores. 
     Automation and/or tools may be developed to perform and/or assist in the performance of such chores. For example, washing machines, dryers, and dishwashers respectively reduced the burden of washing, rinsing, and/or drying laundry and dishes. By way of another example, food processors reduced the burden of chopping up food for cooking. In yet another example, vacuum cleaners reduced the burden of cleaning floors. Robotic vacuum cleaners further reduced that burden by automating the performance of using the vacuum cleaner. 
     Overview 
     The present disclosure relates to a robotic mop that includes one or more mop assemblies that are used for support, mobility, and scrubbing. The mop assemblies may be operated to both scrub and move the robotic mop along the intended path. For example, the robotic mop may operate the mop assemblies in this way by rotating the mop assemblies in one or more directions at various different speeds, by tilting the mop assemblies (whether or not while rotating the mop assemblies at the time), and so on. In this way, the robotic mop may be able to move while scrubbing with various amounts of force without disrupting navigation. 
     In various embodiments, a mop device includes a base, a controller coupled to the base, a reservoir coupled to the base, a dispensing head coupled to the reservoir, a first mop assembly, a second mop assembly, and a third mop assembly. The first mop assembly includes a first motor mount, a first servo coupled to the base and to the first motor mount, a first mop head, and a first motor coupled to the first mop head and the first motor mount. The second mop assembly includes a second motor mount, a second servo coupled to the base and to the second motor mount, a second mop head, and a second motor coupled to the second mop head and the second motor mount. The third mop assembly includes a third motor mount, a third servo coupled to the base and to the third motor mount, a third mop head, and a third motor coupled to the third mop head and the third motor mount. 
     In some examples, the first mop head is configured to couple to a mop pad. In a number of examples, the mop device further includes a fourth mop assembly having a fourth motor mount, a fourth servo coupled to the base and to the fourth motor mount, a fourth mop head, and a fourth motor coupled to the fourth mop head and the fourth motor mount. In various examples, the controller is operable to cause the first servo to tilt the first motor mount with respect to the base in at least one of two directions. In some examples, the controller is operable to cause the first motor to rotate the first mop head in at least one of two directions. In a number of examples, the controller is operable to cause the first motor to rotate the first mop head in at least a first speed and a second speed. In various examples, the first mop assembly, the second mop assembly, and the third mop assembly are configured to cooperatively support the base on a surface. 
     In various embodiments, a mop device includes a base, a controller coupled to the base, a reservoir coupled to the base, a dispensing head coupled to the reservoir, a first mop assembly coupled to the base, and a second mop head coupled to the base. The first mop assembly and the second mop head are operable to support the base on a surface. The controller is operable to operate at least one of the first mop assembly or the second mop head to direct movement of the mop device in a direction. 
     In some examples, the controller is operable to rotate the first mop assembly. In a number of examples, the controller is operable to control a speed at which the first mop assembly rotates. In various examples, the controller is operable to tilt the first mop assembly. In some examples, the controller is operable to control a direction in which the first mop assembly rotates. In a number of examples, the controller is operable to receive input specifying the direction. In some implementations of such examples, the input is detected information regarding movement of the mop device by a user. 
     In a number of embodiments, a mop device includes a base, a controller coupled to the base, a reservoir coupled to the base, a dispensing head coupled to the reservoir, a first mop assembly coupled to the base, and a second mop head coupled to the base. The first mop assembly and the second mop head are operable to support the base on a surface. The controller is operable to move the mop device in a direction by at least one of rotating the first mop assembly or the second mop head, controlling a rotation speed of the first mop assembly or the second mop head, controlling a rotation direction of the first mop assembly or the second mop head, or tilting the first mop assembly or the second mop head. 
     In various examples, the controller is operable to rotate the first mop assembly and the second mop head, control the rotation speed of the first mop assembly and the second mop head, control the rotation direction of the first mop assembly and the second mop head, and tilt the first mop assembly and the second mop head. In some examples, the controller is operable to control the first mop assembly and the second mop head independently of each other. In a number of examples, the controller moves the mop device in the direction according to a stored map. In various examples, the controller moves the mop device in the direction according to input received from a remote control unit. In some examples, the controller controls movement of the first mop assembly or the second mop head to account for fluid between the first mop assembly or the second mop head and the surface. 
    
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
       The disclosure will be readily understood by the following detailed description in conjunction with the accompanying drawings, wherein like reference numerals designate like structural elements. 
         FIG. 1  depicts an example robotic mop or other mop device. 
         FIG. 2A  depicts a close-up view of the mop assembly of  FIG. 1  with the motor rotating the mop head and the mop pad in a first direction. 
         FIG. 2B  depicts the close-up view of  FIG. 2A  after the motor switches to rotate the mop head and the mop pad in a second direction. 
         FIG. 2C  depicts the close-up view of  FIG. 2B  after the motor ceases to rotate the mop head and the mop pad. 
         FIG. 2D  depicts the close-up view of  FIG. 2C  after the servo rotates the servo arm in a first direction and causes the motor mount, motor, mop head, and mop pad to tilt in a first orientation. 
         FIG. 2E  depicts the close-up view of  FIG. 2D  after the servo rotates the servo arm in a second direction and causes the motor mount, motor, mop head, and mop pad to tilt in a second orientation. 
         FIG. 3  depicts a flow chart illustrating an example method for operating a robotic mop or other mop device. This method may be performed by and/or using the robotic mop of  FIG. 1 . 
     
    
    
     DETAILED DESCRIPTION 
     Reference will now be made in detail to representative embodiments illustrated in the accompanying drawings. It should be understood that the following descriptions are not intended to limit the embodiments to one preferred embodiment. To the contrary, it is intended to cover alternatives, modifications, and equivalents as can be included within the spirit and scope of the described embodiments as defined by the appended claims. 
     The description that follows includes sample systems, methods, apparatuses, and computer program products that embody various elements of the present disclosure. However, it should be understood that the described disclosure may be practiced in a variety of forms in addition to those described herein. 
     Robotic mops have not eased the burden of mopping as successfully as robotic vacuum cleaners. This is due to the fact that robotic mops face more challenges than robotic vacuum cleaners. Robotic vacuum cleaners involve mobility and suction whereas robotic mops involve mobility, liquid dispensing and/or uptake, and scrubbing pressure. Typically, robotic mops use wheels for mobility and one or more mop heads for scrubbing. However, such robotic mops do not typically scrub with any significant amount of force as doing so would pull the wheels off track, disrupting the intended path of the robotic mop. As a result of using such reduced force, such robotic mops may not perform particularly well. 
     The following disclosure relates to a robotic mop that overcomes these issues. The robotic mop of the present disclosure uses one or more mop assemblies for support, mobility, and scrubbing. The mop assemblies may be operated to both scrub and move the robotic mop along the intended path. For example, the robotic mop may operate the mop assemblies in this way by rotating the mop assemblies in one or more directions at various different speeds, by tilting the mop assemblies (whether or not while rotating the mop assemblies at the time), and so on. In this way, the robotic mop may be able to move while scrubbing with various amounts of force without disrupting navigation. 
     These and other embodiments are discussed below with reference to  FIGS. 1-3 . However, those skilled in the art will readily appreciate that the detailed description given herein with respect to these Figures is for explanatory purposes only and should not be construed as limiting. 
       FIG. 1  depicts an example robotic mop  100  or other mop device. The robotic mop  100  includes one or more mop assemblies  101 A- 101 D. The mop assemblies  101 A- 101 D may be used for support, mobility, and scrubbing. The mop assemblies  101 A- 101 D may be operated to both scrub and move the robotic mop  100  along an intended path. For example, the robotic mop  100  may operate the mop assemblies  101 A- 101 D in this way by rotating the mop assemblies  101 A- 101 D in one or more directions at various different speeds, by tilting the mop assemblies  101 A- 101 D (whether or not while rotating the mop assemblies  101 A- 101 D at the same time), and so on. In this way, the robotic mop  100  may be able to move while scrubbing with various amounts of force without disrupting navigation. 
     As shown, the robotic mop  100  may include a base  118  to which other components may be coupled. The mop assemblies  101 A- 101 D may be coupled to the base  118  so as to support the robotic mop and/or to move the robotic mop  100 . Other components coupled to the base  118  may include a controller  102 , one or more batteries  103  and/or other power sources and/or wired and/or wireless charging and/or power components (such as a wall plug, a charging adapter port, an inductive charging coil, and so on), one or more pumps  113 , one or more fluid reservoirs  114 , one or more dispensing heads  117 , and so on. 
     The controller  102  may be operable to control and/or direct one or more other components, such as via one or more wires  110 A- 110 D,  111 A- 111 D,  115  and/or other communication connections. For example, the controller  102  may control the pump  113  via the wire  115  and/or other communication connection to obtain fluid (such as mop fluid) from the fluid reservoir  114  via one or more tubes  116  and/or dispense the fluid via the dispensing head  117 . 
     The controller  102  may control one or more the mop assemblies  101 A- 101 D to scrub one or more surfaces on which fluid dispensed by the dispensing head  117  may be disposed and/or pick up such fluid. For example, the mop pads  108 A and/or  108 B positioned near where the dispensing head  117  may dispense fluid may be used to scrub whereas the mop pads  108 C and/or  108 D positioned further away from where the dispensing head  117  may dispense fluid and may pick up the fluid. 
     The mop assemblies  101 A- 101 D may each include one or more servos  104 A- 104 D (servo  104 B not shown due to being obscured in  FIG. 1  by the base  118 ) that respectively have one or more servo arms  109 A- 109 D (servo arm  109 B not shown), one or more motor mounts  105 A- 105 D, one or more motors  106 A- 106 D, one or more mop heads  107 A- 107 D, one or more mop pads  108 A- 108 D, and so on. The controller  102  may be operable to cause the servos  104 A- 104 D to rotate their respective servo arms  109 A- 109 D in one or more opposing directions Such rotation may cause the respective motor mounts  105 A- 105 D, motors  106 A- 106 D, mop heads  107 A- 107 D, mop pads  108 A- 108 D that are connected to the respective servo arms  109 A- 109 D to tilt in one or more orientations in one or more opposing directions (such as clockwise and counterclockwise) with respect to the base  118 . The controller  102  may also be operable to cause the motors  106 A- 106 D to rotate the respective mop heads  107 A- 107 D and mop pads  108 A- 108 D that are connected to the respective servo arms  109 A- 109 D in one or more opposing directions (such as clockwise and counterclockwise) at one or more different speeds with respect to the motors. 
     The controller  102  may control movement of the robotic mop  100  in one or more directions with varying amounts of force by operating one or more of the mop assemblies  101 A- 101 D. The direction of such movement may vary depending on the speed that the mop pads  108 A- 108 D rotate, the speed that one or more of the mop pads  108 A- 108 D rotate with respect to each other, the direction that one or more of the mop heads  107 A- 107 D rotate with respect to each other, a tilt between one or more of mop pads  108 A- 108 D and one or more surfaces, the friction (such as whether or not there is fluid between one or more of the mop pads  108 A- 108 D and one or more surfaces, and so on. 
     For example, the controller  102  may operate the mop assemblies  101 A- 101 D to maintain the robotic mop  100  in place while the mop pads  108 A- 108 D are rotating by rotating the mop pads  108 A and  108 D clockwise and the mop pads  108 B and  108 C counterclockwise (all at approximately the same speed). Alternatively, the controller  102  may operate the mop assemblies  101 A- 101 D to maintain the robotic mop  100  in place while the mop pads  108 A- 108 D are rotating by rotating the mop pads  108 A and  108 D counterclockwise and the mop pads  108 B and  108 C clockwise (all at approximately the same speed). 
     By way of another example, the controller  102  may operate the mop assemblies  101 A- 101 D to maintain the robotic mop  100  to pull towards the right (shown as the bottom in  FIG. 1 ) by rotating the mop pads  108 A and  108 B clockwise at approximately the same speed. Conversely, the controller  102  may operate the mop assemblies  101 A- 101 D to maintain the robotic mop  100  to pull towards the left (shown as the top in  FIG. 1 ) by rotating the mop pads  108 A and  108 B counterclockwise at approximately the same speed. 
     By way of yet another example, the controller  102  may operate the mop assemblies  101 A- 101 D to maintain the robotic mop  100  to pull towards the right (shown as the bottom in  FIG. 1 ) by rotating the mop pads  108 C and  108 D clockwise at approximately the same speed. Conversely, the controller  102  may operate the mop assemblies  101 A- 101 D to maintain the robotic mop  100  to pull towards the left (shown as the top in  FIG. 1 ) by rotating the mop pads  108 C and  108 D counterclockwise at approximately the same speed. 
     In still another example, the controller  102  may operate the mop assemblies  101 A- 101 D to rotate the robotic mop  100  in a first direction (such as counterclockwise with respect to  FIG. 1 ) by rotating the mop pads  108 A- 108 D clockwise at approximately the same speed. Conversely, the controller  102  may operate the mop assemblies  101 A- 101 D to rotate the robotic mop  100  in a second opposite direction (such as clockwise with respect to  FIG. 1 ) by rotating the mop pads  108 A- 108 D counterclockwise at approximately the same speed. 
     Similarly, the controller  102  may operate the mop assemblies  101 A- 101 D to pull the robotic mop  100  in a particular direction by rotating the mop pads  108 A- 108 D at different speeds. For example, the robotic mop  100  may pull in the direction of one of the mop pads  108 A- 108 D that is rotating faster than one or more of the others. 
     By way of another example, the controller  102  may operate the mop assemblies  101 A- 101 D to pull the robotic mop  100  in a particular direction by rotating the mop pads  108 A- 108 D all at one speed and then slowing the rotation of one. By way of illustration, slowing the mop pad  108 A in such a scenario would cause the robotic mop  100  to pull to the left (shown as the top in  FIG. 1 ). 
     The controller  102  may also operate the mop assemblies  101 A- 101 D to cause motion in one or more directions by tilting one or more of the mop pads  108 A- 108 D with respect to one or more of the surfaces. Such tilting may cause a mop pad  108 A- 108 D that is not currently rotating to engage (such as frictionally) the surface and affect the motion caused by another mop pad  108 A- 108 D that is rotating. Essentially, the mop pad  108 A- 108 D may engage the surface to act as a brake on the motion caused by the other mop pad  108 A- 108 D that is rotating. Such tilting may also cause a mop pad  108 A- 108 D that is rotating to engage (such as frictionally) the surface more on part of the mop pad  108 A- 108 D that is rotating in a first direction than another part of the mop pad  108 A- 108 D that is rotating in a second, opposite direction. This may cause the robotic mop  100  to pull toward the first direction. Essentially, as the part of the mop pad  108 A- 108 D that is rotating in the first direction engages the surface more than the other part of the mop pad  108 A- 108 D that is rotating in the second, opposite direction, the mop pad  108 A- 108 D may operate as a wheel moving in the first direction. In other words, the controller  102  may tilt a mop pad  108 A- 108 D that is rotating in a first direction to cause the robotic mop  100  to pull in a second, opposite direction. 
     The controller  102  may also operate the mop assemblies  101 A- 101 D to cause motion in one or more directions by altering the friction between one or more of the mop pads  108 A- 108 D and one or more surfaces. For example, the robotic mop  100  may pull in the direction of one of the mop pads  108 A- 108 D that has more friction between itself and one or more surfaces. One way that the controller  102  may alter the friction between one or more of the mop pads  108 A- 108 D is by causing the pump  113  to dispense fluid via the dispensing head  117 . Fluid between one or more of the mop pads  108 A- 108 D and one or more surfaces may increase friction between the one or more of the mop pads  108 A- 108 D and the one or more surfaces. 
     By way of illustration, the controller  102  may cause the pump  113  to dispense fluid via the dispensing head  117 . As the dispensing head  117  is positioned closer to the mop pads  108 A and  108 D than the mop pads  108 B and  108 C, the mop pads  108 A and  108 D may encounter the fluid before the mop pads  108 B and  108 C. This may cause there to be more friction between the mop pads  108 A and  108 D and one or more surfaces than the mop pads  108 B and  108 C and one or more surfaces. This may change as the robotic mop  100  moves with respect to the fluid, which may cause the mop pads  108 B and  108 C to encounter the fluid. 
     The more that one of the mop pads  108 A- 108 D is tilted, the more friction the lesser tilted side of the one of the mop pads  108 A- 108 D has. This may be because the lesser tilted side may be contacting one or more surfaces with more force and thus more thrust is generated in the opposite direction of the rotation. 
     However, although tilt is discussed herein, the tilt may be slight. Tilt may cause one side of one of the mop pads  108 A- 108 D to engage one or more surfaces with lesser or greater force while still contacting the one or more surfaces, may cause the side to not contact the one or more surfaces, and so on. Various configurations are possible and contemplated without departing from the scope of the present disclosure. 
     As discussed above, the controller  102  may be able to use tilt, rotation direction, rotation speed, friction, and so on of one or more of the mop pads  108 A- 108 D to direct movement of the robotic mop  100 . However, some of these factors may produce greater changes in motion than others. For example, the order of magnitude of effect may be tilt, direction, and then speed. 
     The controller  102  may control one or more of the mop pads  108 A- 108 D to move the robotic mop  100  along a navigation path. This may be implemented in a variety of different ways. 
     For example, the controller  102  may include a wired and/or wireless interface to a remote control unit that an operator may use to direct the robotic mop. In such an example, the controller  102  may control the mop pads  108 A- 108 D (and/or the pump  113  and/or other components) to move the robotic mop  100  in response to input received via the remote control unit. Various configurations are possible and contemplated without departing from the scope of the present disclosure. 
     By way of another example, the controller  102  may store one or more maps that describe a route for the robotic mop  100  to travel. In such an example, the controller  102  may control the mop pads  108 A- 108 D (and/or the pump  113  and/or other components) to move the robotic mop  100  according to one of the maps. Various configurations are possible and contemplated without departing from the scope of the present disclosure. 
     In some implementations of such examples, the controller  102  may adjust control of the mop pads  108 A- 108 D to account for various factors. For example, the controller  102  may alter control of the mop pads  108 A- 108 D when controlling the pump  113  to dispense fluid in order to compensate for the way that the fluid will alter the friction between the mop pads  108 A- 108 D and one or more surfaces. Various configurations are possible and contemplated without departing from the scope of the present disclosure. 
     In still other examples, the robotic mop  100  may include one or more sensors (not shown). Such sensors may include one or more compasses, accelerometers, global and/or other positioning system sensors, inertial sensors, moisture detectors, and so on. In such an example, the controller  102  may control the mop pads  108 A- 108 D (and/or the pump  113  and/or other components) to move the robotic mop  100  according to data from one or more of the sensors. Various configurations are possible and contemplated without departing from the scope of the present disclosure. 
     In various examples, one of more of these examples may be combined. By way of illustration, in some implementations, the controller  102  may record one or more maps based on input received from one or more remote control units, by using one or more sensors (not shown) to record path data obtained from one or more sensors that detect while a user moves the robotic mop  100 , and so on. By way of another illustration, the controller  102  may control the mop pads  108 A- 108 D (and/or the pump  113  and/or other components) to move the robotic mop  100  according to one of the maps, detect when movement does not result as expected using one or more sensors, and control the mop pads  108 A- 108 D to adjust the movement of the robotic mop  100 . Various configurations are possible and contemplated without departing from the scope of the present disclosure. 
     The mop pads  108 A- 108 D may be respectively coupled to a respective one of the mop heads  107 A- 108 D. Such coupling may include adhesive attachment, hook and loop attachment (such as using attachment mechanisms sold under the Velcro™ brand), and so on. 
     The mop pads  108 A- 108 D may be formed from one or more kinds of foam, cotton, and so on. The mop pads  108 A- 108 D are shown as circularly shaped. However, it is understood that this is an example. In other implementations, one of the mop pads  108 A- 108 D may be configured with other shapes, such as a square or other rectangle. Various configurations are possible and contemplated without departing from the scope of the present disclosure. 
     Various components of the robotic mop  100  (such as the base  118 , one or more of the motor mounts  105 A- 105 D, one or more of the mop heads  107 A- 107 D, and so on) may be formed from one or more of a variety of different materials. Such materials may include, but are not limited to, one or more plastics and/or polymers, metals, alloys, wood, and so on. 
     The controller  102  may be any kind of electronic device. Examples of such devices include, but are not limited to, one or more desktop computing devices, laptop computing devices, server computing devices, mobile computing devices, tablet computing devices, set top boxes, digital video recorders, televisions, displays, wearable devices, smart phones, digital media players, and so on. The controller  102  may include one or more processing units and/or other processors and/or control units, one or more non-transitory storage media (which may take the form of, but is not limited to, a magnetic storage medium; optical storage medium; magneto-optical storage medium; read only memory; random access memory; erasable programmable memory; flash memory; and so on), one or more communication units, and/or other components. The processing unit may execute instructions stored in the non-transitory storage medium to perform various functions. Such functions may include operating one or more of the servos  104 A- 104 D, operating one or more of the motors  106 A- 106 D, causing the pump  113  to dispense fluid from the fluid reservoir  114  via the dispensing head  117 , navigating and/or otherwise moving the robotic mop  100 , obtaining power from the battery  103  via one or more wires  112  and/or other wired and/or wireless power connections, and so on. 
     Although the robotic mop  100  is illustrated and described as including particular components arranged in a particular configuration, it is understood that this is an example. In a number of implementations, various configurations of various components may be used without departing from the scope of the present disclosure. 
     For example, the robotic mop  100  is illustrated and described as including four mop assemblies  101 A- 101 D. However, it is understood that this is an example. In various implementations, the robotic mop  100  may include any number of mop assemblies  101 A- 101 D, such as two, five, ten, and so on. Various configurations are possible and contemplated without departing from the scope of the present disclosure. 
     By way of another example, the robotic mop  100  is illustrated and described as using only the four mop assemblies  101 A- 101 D for support. However, it is understood that this is an example. In various implementations, the robotic mop  100  may include other components (such as one or more wheels, braces, struts, and so on) that support and/or aid in supporting the robotic mop  100 . Various configurations are possible and contemplated without departing from the scope of the present disclosure. 
     In yet another example, the robotic mop  100  is illustrated and described as using one or more servos  104 A- 104 D and/or one or more motors  106 A- 106 D to move one or more portions of the mop assemblies  101 A- 101 D and/or to move one or more of the mop assemblies  101 A- 101 D with respect to the base  118 . However, it is understood that this is an example. In various implementations, the robotic mop  100  may include other components operable to perform one or more such functions. Various configurations are possible and contemplated without departing from the scope of the present disclosure. 
     Moreover, the robotic mop  100  is illustrated and described as including four mop assemblies  101 A- 101 D. It is understood that this is an example. In other implementations, other numbers of mop assemblies  101 A- 101 D may be used, such as two, three, five, and so on. However, navigation may improve when using four mop assemblies  101 A- 101 D as opposed to two or three. Various configurations are possible and contemplated without departing from the scope of the present disclosure. 
     Additionally, the present disclosure is described in the context of a robotic mop  100 . However, it is understood that this is an example. In various implementations, the techniques disclosed herein may be used in the context of other devices without departing from the scope of the present disclosure. Various configurations are possible and contemplated. For example, in some examples, the robotic mop  100  may include a vacuum module that may be used to vacuum before mopping. Various configurations are possible and contemplated without departing from the scope of the present disclosure. 
       FIGS. 2A-2E  depict close-up views of the mop assembly  101 A of  FIG. 1  illustrating control of the mop assembly  101 A produced by controlling the motor  106 A via the wire  110 A, the servo  104 A via the wire  111 A, and so on. As is illustrated in these figures and described below, the servo  104 A may be controlled to rotate the servo arm  109 A in a first direction  120 A and/or a second, opposing direction  120 B, thus tilting the motor mount  105 A, motor  106 A, mop head  107 A, and mop pad  108 A in a first direction and/or a second, opposing direction. As is also illustrated in these figures and described below, the motor  106 A may be controlled to rotate the mop head  107 A and the mop pad  108 A in a first direction  121 A and/or a second, opposing direction  121 B. 
       FIG. 2A  depicts a close-up view of the mop assembly  101 A of  FIG. 1 . As shown, the motor  106 A is rotating the mop head  107 A and mop pad  108 A in a first direction  121 A. The motor  106 A may be rotating the mop head  107 A and mop pad  108 A in the first direction  121 A at any of a number of different speeds, such as 25 revolutions per second, 100 revolutions per second, and so on. 
       FIG. 2B  depicts the close-up view of  FIG. 2A  after the motor  106 A switches to rotate the mop head  107 A and mop pad  108 A in a second direction  121 B. The motor  106 A may be rotating the mop head  107 A and mop pad  108 A in the second direction  121 B at any of a number of different speeds. 
       FIG. 2C  depicts the close-up view of  FIG. 2B  after the motor  106 A ceases to rotate the mop head  107 A and mop pad  108 A. Alternatively, the motor  106 A may not be rotating the mop head  107 A and mop pad  108 A and may not previously have been doing so. 
       FIG. 2D  depicts the close-up view of  FIG. 2C  after the servo  104 A rotates the servo arm  109 A in a first direction  120 A. This may cause the motor mount  105 A, motor  106 A, mop head  107 A, and mop pad  108 A to tilt in a first orientation. 
       FIG. 2E  depicts the close-up view of  FIG. 2D  after the servo  104 A rotates the servo arm  109 A in a second direction  120 B. This may cause the motor mount  105 A, motor  106 A, mop head  107 A, and mop pad  108 A to tilt in a second orientation. 
     Although  FIGS. 2A-2E  are illustrated and described as the servo  104 A and/or the motor  106 A to cause movement of the mop assembly  101 A. However, it is understood that this is an example. In various implementations, the mop assembly  101 A may include other components operable to perform one or more such functions. Various configurations are possible and contemplated without departing from the scope of the present disclosure. 
       FIG. 3  depicts a flow chart illustrating an example method  300  for operating a robotic mop or other mop device. This method may be performed by and/or using the robotic mop  100  of  FIG. 1 . 
     At operation  310 , a robotic mop, such as the robotic mop  100  of  FIG. 1 , may operate. At operation  320 , the robotic mop may determine whether or not to navigate. For example, the robotic mop may determine to navigate based on a current position and a destination position, based on a map, in response to received input from a remote and/or other kind of control, and so on. If so, the flow may proceed to operation  330 . Otherwise, the flow may proceed to operation  340 . 
     At operation  330 , after the robotic mop determines to navigate, the robotic mop may operate one or more mop head assemblies in order to navigate as determined. For example, the robotic mop may tilt the one or more mop head assemblies, rotate one or more mop head assemblies, rotate the one or more mop head assemblies at a particular speed, change the rotation speed of the one or more mop head assemblies, change the tilt of the one or more mop head assemblies, alter the friction between the one or more mop head assemblies and one or more surfaces, and so on. The flow may then proceed to operation  340 . 
     At operation  340 , the robotic mop may determine whether or not to dispense. For example, the robotic mop may be operable to dispense one or more fluids (such as one or more mop fluids, water, and so on) from one or more reservoirs through one or more dispensing heads using one or more pumps. If so, the flow may proceed to operation  350  where the robotic mop may dispense before the flow returns to operation  310  and the robotic mop continues to operate. Otherwise, the flow may proceed directly to operation  310  where the robotic mop continues to operate without dispensing. 
     In various examples, this example method  300  may be implemented using a group of interrelated software modules or components that perform various functions discussed herein. These software modules or components may be executed within a cloud network and/or by one or more computing and/or other electronic devices, such as the robotic mop  100  of  FIG. 1 . 
     Although the example method  300  is illustrated and described as including particular operations performed in a particular order, it is understood that this is an example. In various implementations, various orders of the same, similar, and/or different operations may be performed without departing from the scope of the present disclosure. 
     For example, the method  300  is illustrated as determining whether or not to navigate and then determining whether or not to dispense. However, it is understood that this is an example. In various implementations, these operations may be performed in other orders, such as simultaneously, reversed, and so on. In any number of implementations, the determination of whether or not to navigate may be performed in response to a variety of different factors and may be unrelated to each other. Various configurations are possible and completed without departing from the scope of the present disclosure. 
     In various implementations, a mop device may include a base, a controller coupled to the base, a reservoir coupled to the base, a dispensing head coupled to the reservoir, a first mop assembly, a second mop assembly, and a third mop assembly. The first mop assembly may include a first motor mount, a first servo coupled to the base and to the first motor mount, a first mop head, and a first motor coupled to the first mop head and the first motor mount. The second mop assembly may include a second motor mount, a second servo coupled to the base and to the second motor mount, a second mop head, and a second motor coupled to the second mop head and the second motor mount. The third mop assembly may include a third motor mount, a third servo coupled to the base and to the third motor mount, a third mop head, and a third motor coupled to the third mop head and the third motor mount. 
     In some examples, the first mop head may be configured to couple to a mop pad. In a number of examples, the mop device may further include a fourth mop assembly having a fourth motor mount, a fourth servo coupled to the base and to the fourth motor mount, a fourth mop head, and a fourth motor coupled to the fourth mop head and the fourth motor mount. In various examples, the controller may be operable to cause the first servo to tilt the first motor mount with respect to the base in at least one of two directions. In some examples, the controller may be operable to cause the first motor to rotate the first mop head in at least one of two directions. In a number of examples, the controller may be operable to cause the first motor to rotate the first mop head in at least a first speed and a second speed. In various examples, the first mop assembly, the second mop assembly, and the third mop assembly may be configured to cooperatively support the base on a surface. 
     In various embodiments, a mop device may include a base, a controller coupled to the base, a reservoir coupled to the base, a dispensing head coupled to the reservoir, a first mop assembly coupled to the base, and a second mop head coupled to the base. The first mop assembly and the second mop head may be operable to support the base on a surface. The controller may be operable to operate at least one of the first mop assembly or the second mop head to direct movement of the mop device in a direction. 
     In some examples, the controller may be operable to rotate the first mop assembly. In a number of examples, the controller may be operable to control a speed at which the first mop assembly rotates. In various examples, the controller may be operable to tilt the first mop assembly. In some examples, the controller may be operable to control a direction in which the first mop assembly rotates. In a number of examples, the controller may be operable to receive input specifying the direction. In some such examples, the input may be detected information regarding movement of the mop device by a user. 
     In a number of implementations, a mop device may include a base, a controller coupled to the base, a reservoir coupled to the base, a dispensing head coupled to the reservoir, a first mop assembly coupled to the base, and a second mop head coupled to the base. The first mop assembly and the second mop head may be operable to support the base on a surface. The controller may be operable to move the mop device in a direction by at least one of rotating the first mop assembly or the second mop head, controlling a rotation speed of the first mop assembly or the second mop head, controlling a rotation direction of the first mop assembly or the second mop head, or tilting the first mop assembly or the second mop head. 
     In various examples, the controller may be operable to rotate the first mop assembly and the second mop head, control the rotation speed of the first mop assembly and the second mop head, control the rotation direction of the first mop assembly and the second mop head, and tilt the first mop assembly and the second mop head. In some examples, the controller may be operable to control the first mop assembly and the second mop head independently of each other. In a number of examples, the controller may move the mop device in the direction according to a stored map. In various examples, the controller may move the mop device in the direction according to input received from a remote control unit. In some examples, the controller may control movement of the first mop assembly or the second mop head to account for fluid between the first mop assembly or the second mop head and the surface. 
     Although the above illustrates and describes a number of embodiments, it is understood that these are examples. In various implementations, various techniques of individual embodiments may be combined without departing from the scope of the present disclosure. 
     As described above and illustrated in the accompanying figures, the present disclosure relates to a robotic mop that includes one or more mop assemblies that are used for support, mobility, and scrubbing. The mop assemblies may be operated to both scrub and move the robotic mop along the intended path. For example, the robotic mop may operate the mop assemblies in this way by rotating the mop assemblies in one or more directions at various different speeds, by tilting the mop assemblies (whether or not while rotating the mop assemblies at the time), and so on. In this way, the robotic mop may be able to move while scrubbing with various amounts of force without disrupting navigation. 
     In the present disclosure, the methods disclosed may be implemented as sets of instructions or software readable by a device. Further, it is understood that the specific order or hierarchy of steps in the methods disclosed are examples of sample approaches. In other embodiments, the specific order or hierarchy of steps in the method can be rearranged while remaining within the disclosed subject matter. The accompanying method claims present elements of the various steps in a sample order, and are not necessarily meant to be limited to the specific order or hierarchy presented. 
     The described disclosure may be provided as a computer program product, or software, that may include a non-transitory machine-readable medium having stored thereon instructions, which may be used to program a computer system (or other electronic devices) to perform a process according to the present disclosure. A non-transitory machine-readable medium includes any mechanism for storing information in a form (e.g., software, processing application) readable by a machine (e.g., a computer). The non-transitory machine-readable medium may take the form of, but is not limited to, a magnetic storage medium (e.g., floppy diskette, video cassette, and so on); optical storage medium (e.g., CD-ROM); magneto-optical storage medium; read only memory (ROM); random access memory (RAM); erasable programmable memory (e.g., EPROM and EEPROM); flash memory; and so on. 
     The foregoing description, for purposes of explanation, used specific nomenclature to provide a thorough understanding of the described embodiments. However, it will be apparent to one skilled in the art that the specific details are not required in order to practice the described embodiments. Thus, the foregoing descriptions of the specific embodiments described herein are presented for purposes of illustration and description. They are not targeted to be exhaustive or to limit the embodiments to the precise forms disclosed. It will be apparent to one of ordinary skill in the art that many modifications and variations are possible in view of the above teachings.