Apparatus and method for semi-automatic cleaning of surfaces
The semi-autonomous cleaning apparatus addresses navigation and cleaning inefficiencies by using a processor-controlled drive system with multi-axis wheels for effective surface cleaning, including corners and complex layouts.
Patent Information
- Application Number
- JP2022156370
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- Priority Date
- 2015-04-24
- Filing Date
- 2022-09-29
- Publication Date
- 2025-10-02
- Estimated Expiration
- 2036-04-25
AI Technical Summary
Existing semi-autonomous cleaning devices face challenges such as inaccurate object sensing, difficulty in navigating around obstacles, inefficient path planning, and inadequate drive systems that prevent effective cleaning of surfaces, particularly corners and complex layouts.
A semi-autonomous cleaning apparatus with a frame, drive system, and cleaning assembly, equipped with a processor and sensors, that defines and redefines paths based on sensor signals, enabling efficient debris transfer and navigation around obstacles using a drive system with wheels rotating about multiple axes for holonomic motion.
Enables efficient and autonomous cleaning of surfaces, including corners and complex layouts, with improved path planning and obstacle avoidance, enhancing cleaning efficiency and coverage.
Smart Images

Figure 0007748349000001 
Figure 0007748349000002 
Figure 0007748349000003
Abstract
Description
[Technical Field]
[0001] (CROSS-REFERENCE TO RELATED APPLICATIONS) This application claims priority to and the benefit of U.S. Provisional Patent Application No. 62 / 152,303, filed April 24, 2015, entitled "Apparatus and Methods for Semi-Autonomous Cleaning of Surfaces," the disclosure of which is incorporated herein by reference in its entirety.
[0002] FIELD OF THE INVENTION The embodiments described herein relate to devices and methods for cleaning surfaces, and more particularly to devices and methods for at least semi-autonomous cleaning of floors and / or other surfaces. [Background technology]
[0003] The use of at least semi-autonomous devices configured to perform a set of tasks is known. For example, robots can be used to clean surfaces, mow lawns, collect items from a stored inventory, etc. Such devices can be configured to operate in several different ways. However, core to all these devices is the ability of the device to determine its location relative to a given area. Specifically, some known devices for at least semi-autonomous cleaning of surfaces such as floors can be configured to determine their location relative to the area of that surface. In some cases, such devices and / or robots can include any number of sensors, cameras, light emitting and / or sensing devices (e.g., visible light, infrared light, etc.), radio and / or sound wave emitters (e.g., sonar), Global Positioning System (GPS) radios, and / or any other devices used to locate the device and / or robot within an area. While these devices (robots) are configured to operate in at least a semi-autonomous manner, optimal design and / or control still presents challenges.
[0004] For example, in some cases, object sensing methods such as sonar may be limited, inaccurate, and / or difficult to program. In other cases, a robot configured (e.g., programmed) to travel along a predetermined path may encounter an unexpected obstacle or the like, which may cause the robot to deviate from the predetermined path in a manner that may be irrecoverable without user (e.g., human) intervention. Furthermore, defining a predetermined path may involve significant time and / or programming and is often not the most efficient path along which the robot should travel. In still other cases, some known robots fail to provide a user with an indication of the robot's position, progress, and / or status. Additionally, some robotic arrangements configured to clean surfaces may lack a suitable drive system that can enable the robot to reach corners and / or otherwise effectively clean a desired surface. Summary of the Invention [Problem to be solved by the invention]
[0005] Therefore, there is a need for improved devices and methods for semi-autonomous cleaning of surfaces. [Means for solving the problem]
[0006] Described herein are apparatuses and methods for at least semi-autonomous cleaning of floors and / or other surfaces. In some embodiments, the apparatus includes a frame, a drive system supported by the frame, an electronics system supported by the frame, and a cleaning assembly coupled to the frame. The drive system is configured to move the frame along the surface. The cleaning assembly is configured to engage the surface and transfer debris from the surface to a storage volume supported by the frame. The electronics system has at least a processor and a memory. The processor is configured to define a path along which the drive system will travel and to redefine the path along which the drive system will travel based on at least one signal received from at least one sensor. The present specification also provides, for example, the following items: (Item 1) 1. An apparatus comprising: The frame and a drive system supported by the frame and configured to move the frame along a surface, the drive system having at least one wheel configured to rotate about a first axis and a second axis non-parallel to the first axis; a cleaning assembly coupled to the frame, the cleaning assembly configured to engage the surface and transfer debris from the surface to a storage volume supported by the frame; an electronics system supported by the frame, the electronics system having at least a processor and a memory, the processor configured to execute a set of instructions stored in the memory associated with defining a path, the drive system configured to move the cleaning assembly along the path, the cleaning assembly configured to engage the surface and transfer debris from the surface to the storage volume, the processor configured to define a redefined path along which the drive system is configured to move the cleaning assembly based on at least one signal associated with the path; An apparatus comprising: (Item 2) Item 1, wherein the first axis is substantially parallel to the surface. (Item 3) 10. The apparatus of claim 1, wherein the second axis is substantially perpendicular to the surface. (Item 4) 10. The apparatus of claim 1, wherein the drive system includes a motor operatively coupled to the at least one wheel and configured to generate an operable output when rotating the at least one wheel about at least the first axis. (Item 5) 10. The apparatus of claim 9, wherein the drive system includes a first motor and a second motor, the first motor operably coupled to the at least one wheel and configured to generate an output operable in rotating the at least one wheel about the first axis, and the second motor operable in rotating the at least one wheel about the second axis. (Item 6) 10. The apparatus of claim 1, wherein the at least one wheel includes a plurality of rollers, each roller from the plurality of rollers configured to rotate about an axis from a plurality of axes, and the second axis is from the plurality of axes. (Item 7) 10. The apparatus of claim 1, wherein the electronics system is configured, at least in part, to control the drive system to move the cleaning assembly along the path. (Item 8) 10. The apparatus of claim 1, wherein the electronics system is configured, at least in part, to control the drive system to move the cleaning assembly along the redefined path in response to receiving at least one signal associated with the path. (Item 9) 10. The apparatus of claim 1, wherein the cleaning assembly is configured to transfer debris from the surface to the storage volume with a predetermined efficiency when the drive system moves the cleaning assembly along at least one of the path or the redefined path. (Item 10) the cleaning assembly is configured to transfer debris from the surface to the storage volume with a first predetermined efficiency when the drive system moves the cleaning assembly along the path; the cleaning assembly is configured to transfer debris from the surface to the storage volume with a second predetermined efficiency when the drive system moves the cleaning assembly along the path, the second predetermined efficiency being greater than the first predetermined efficiency; 10. The device according to any of the preceding items. (Item 11) 10. The apparatus of claim 1, wherein the processor is configured to receive at least one signal associated with the path from at least one sensor, the at least one sensor being configured to detect an irregularity along the path. (Item 12) Item 12. The apparatus of item 11, wherein the anomaly is an object located at a location along the path. (Item 13) 10. The device of claim 1, wherein the at least one sensor is at least one of an optical transceiver, a camera, a radio, an encoder, a ranging sensor, an inertial measurement unit, a compass, a gyroscope, or an accelerometer. (Item 14) 10. The apparatus of claim 9, wherein the electronics system is configured to transition at least one of the drive system or the cleaning assembly from a first configuration in which the drive system or the cleaning assembly, respectively, receives a flow of electrical power to a second configuration in which the electronics system prevents a flow of electrical power to the drive system or the cleaning assembly, respectively, in response to an input. (Item 15) 1. An apparatus comprising: a frame supporting at least one containment volume; a drive system supported by the frame and configured to move the frame along a surface, the drive system having a plurality of wheels, each wheel from the plurality of wheels configured to rotate about a wheel axis in response to a different motor output from a plurality of motors, the angle defined between each wheel axis being substantially equal, and each wheel from the plurality of wheels having a plurality of rollers, each roller from the plurality of rollers of each wheel from the plurality of wheels configured to rotate about an independent roller axis non-parallel to the wheel axis associated with that wheel from the plurality of wheels; a cleaning assembly coupled to the frame, the cleaning assembly configured to engage the surface and transfer debris from the surface to the at least one storage volume; an electronics system supported by the frame, the electronics system configured to send one or more signals to at least one motor from the plurality of motors indicating instructions to rotate an associated wheel from the plurality of wheels about the associated wheel axis to move the cleaning assembly along a surface in a predetermined path; and An apparatus comprising: (Item 16) Item 16. The apparatus of item 15, wherein the plurality of wheels includes a first wheel, a second wheel, and a third wheel, and the angle is approximately 120 degrees. (Item 17) Item 17. The apparatus of item 16, wherein a first distance is defined between a center of rotation of the first wheel and a center of rotation of the second wheel, and a second distance is defined between a center of rotation of the third wheel and at least one of the center of rotation of the first wheel or the center of rotation of the second wheel. (Item 18) 18. The apparatus of any of items 15-17, wherein the cleaning assembly is configured to transfer debris from the surface to the at least one storage volume with a predetermined efficiency when the drive system moves the cleaning assembly along the predetermined path. (Item 19) 19. The apparatus of any of items 15-18, wherein the electronics system includes at least a memory and a processor, the processor configured to execute a set of instructions stored in the memory associated with defining a map of the surface based on data received from one or more sensors, and the predetermined path is a predetermined path along the map. (Item 20) 20. The apparatus of claim 19, wherein defining the predetermined path is based, at least in part, on a calculated efficiency associated with the cleaning assembly transporting debris from at least a portion of the surface to the at least one containment volume. (Item 21) 21. The apparatus of claim 19 or 20, wherein the processor is configured to execute a set of instructions stored in the memory associated with decomposing the map of the surface into a plurality of sections that collectively form the map of the surface, and wherein the processor is configured to execute a set of instructions stored in the memory associated with defining a path along each segment from the plurality of segments based, at least in part, on a calculated efficiency associated with transferring debris from that segment to the at least one storage volume. (Item 22) 22. The apparatus of claim 21, wherein the processor is configured to execute a set of instructions stored in the memory associated with combining the paths along each segment from the plurality of segments to define a predetermined path along the map. (Item 23) 23. The apparatus of any of items 15-22, wherein the electronics system is configured to transition at least one of the drive system or the cleaning assembly from a first configuration in which the drive system or the cleaning assembly, respectively, receives a flow of electrical power to a second configuration in which the electronics system prevents a flow of electrical power to the drive system or the cleaning assembly, respectively. (Item 24) 24. The apparatus of claim 23, wherein the electronics system is in electronic communication with a remote electronic device, the remote electronic device being configured to transmit a signal in response to a user input and the electronics system indicating an instruction to transition at least one of the drive system or the cleaning assembly from the first configuration to the second configuration. (Item 25) 1. A method of at least semi-autonomous cleaning of a surface using a cleaning robot, the cleaning robot having an electronics system configured to control at least a portion of the cleaning robot, the method comprising: defining an initial data set representing a map of the surface to be cleaned based on data received at a processor of the electronics system from at least one sensor included within the cleaning robot; decomposing, via the processor, the initial dataset into a plurality of area datasets, each area dataset from the plurality of area datasets representing an area of the map; defining a plurality of intra-area data sets, each intra-area data set from the plurality of intra-area data sets representing an intra-area path along an area from a plurality of areas of the map based at least in part on a calculated efficiency associated with the cleaning robot cleaning a portion of the surface corresponding to that area from the plurality of areas; defining an inter-zone dataset representing the inter-zone paths along the map based at least in part on combining each intra-zone path to collectively define an inter-zone path and a calculated efficiency associated with the cleaning robot moving substantially along the inter-zone path and cleaning the surface; A method comprising: (Item 26) Item 26. The method of item 25, wherein the cleaning robot includes the electronics system, a frame configured to support the electronics system, a drive system coupled to the frame, and a cleaning assembly, wherein the drive system is configured to move the cleaning robot along the surface in response to a signal from the electronics system, and the cleaning assembly is configured to clean the surface as the drive system moves the cleaning robot along the surface. (Item 27) 27. The method of claim 25 or 26, wherein defining the initial dataset representing the map includes a step of a user moving the cleaning robot along the surface such that the at least one sensor generates data representing objects relative to the surface. (Item 28) 28. The method of any of items 25-27, wherein the initial data set comprises data representative of an object relative to the surface generated by the at least one sensor. (Item 29) 29. The method of any of items 25-28, wherein the cleaning robot is configured to move over the surface and substantially along the inter-zone path and clean the surface at least semi-autonomously. (Item 30) 30. The method of any of items 25-29, further comprising receiving, in the processor, a signal indicating an instruction to transition the cleaning robot from a first configuration in which a drive system and cleaning assembly of the cleaning robot receive a flow of electrical power to a second configuration in which no electrical power is provided to the drive system and cleaning assembly. (Item 31) Item 31. The method of item 30, wherein the electronic equipment system electronically communicates with a remote electronic device via a network, and receiving a signal indicating an instruction to transition the cleaning robot from the first configuration to the second configuration includes receiving the signal from the remote electronic device at the processor. (Item 32) The electronic equipment system is in electronic communication with a remote electronic device over a network, and the method further comprises: 32. The method of any of items 25-31, comprising sending a signal from the processor to the remote electronic device indicating an instruction to display data associated with the cleaning robot on a display of the remote electronic device. [Brief explanation of the drawings]
[0007] [Figure 1] FIG. 1 is a schematic diagram of a semi-autonomous robot, according to one embodiment. [Figure 2] 2-4 are front, rear, and top perspective views of a semi-autonomous robot, according to one embodiment. [Figure 3] 2-4 are front, rear, and top perspective views of a semi-autonomous robot, according to one embodiment. [Figure 4] 2-4 are front, rear, and top perspective views of a semi-autonomous robot, according to one embodiment. [Figure 5] FIG. 5 is a rear view of the semi-autonomous robot of FIG. 2 with the electronics cover removed. [Figure 6] 6 is a rear perspective view of a portion of the frame and drive system included within the semi-autonomous robot of FIG. 2. [Figure 7] 7 is a top perspective view of a portion of the frame and drive system included within the semi-autonomous robot of FIG. 2. [Figure 8] FIG. 8 is a perspective view of a wheel included in the drive system of FIG. [Figure 9] 9 and 10 are perspective and rear views, respectively, of a semi-autonomous robot according to one embodiment. [Figure 10] 9 and 10 are perspective and rear views, respectively, of a semi-autonomous robot according to one embodiment. [Figure 11] FIG. 11 is an exploded view of a portion of the semi-autonomous robot of FIG. [Figure 12] FIG. 12 is a perspective view of a drive system included within the semi-autonomous robot of FIG. [Figure 13] FIG. 13 is an exploded view of the drive system of FIG. [Figure 14] 14 and 15 are front and rear views, respectively, of the drive system of FIG. [Figure 15] 14 and 15 are front and rear views, respectively, of the drive system of FIG. [Figure 16] 16 is a perspective view of a cleaning assembly included within the semi-autonomous robot of FIG. 9. [Figure 17] FIG. 17 is a perspective view of the cleaning assembly of FIG. 16 without the cover. [Figure 18] 18 and 19 are front and rear perspective views, respectively, of a semi-autonomous robot according to one embodiment. [Figure 19] 18 and 19 are front and rear perspective views, respectively, of a semi-autonomous robot according to one embodiment. [Figure 20]FIG. 20 is a top view of the semi-autonomous robot of FIG. 18 with the lid removed. [Figure 21] 21 is a perspective view of a portion of the frame, drive system, and cleaning assembly included within the semi-autonomous robot of FIG. 18. [Figure 22] 22 is an exploded view of the frame, drive system, and a portion of the cleaning assembly of FIG. 21. [Figure 23] 23 is a bottom perspective view of a portion of the frame and drive system of FIG. 21. FIG. [Figure 24] FIG. 24 is a top view of the drive system of FIG. [Figure 25] FIG. 25 is an exploded view of the drive mechanism contained within the drive system of FIG. [Figure 26] 26 and 27 are top and bottom perspective views of the cleaning assembly of FIGS. 21 and 22. [Figure 27] 26 and 27 are top and bottom perspective views of the cleaning assembly of FIGS. 21 and 22. [Figure 28] FIG. 28 is a perspective view of the cleaning assembly of FIGS. 21 and 22 with the shroud removed. [Figure 29] 29 and 30 are front and rear perspective views, respectively, of a semi-autonomous robot according to one embodiment. [Figure 30] 29 and 30 are front and rear perspective views, respectively, of a semi-autonomous robot according to one embodiment. [Figure 31] FIG. 31 is a top perspective view of the semi-autonomous robot of FIG. 29 with one or more lids removed. [Figure 32] 32 is a partially exploded view of a portion of a frame contained within the semi-autonomous robot of FIG. 29. [Figure 33] 33 is a perspective view of a portion of the frame, drive system, and cleaning assembly included within the semi-autonomous robot of FIG. 29. [Figure 34]34 is a partially exploded view of the frame, drive system, and portion of the cleaning assembly of FIG. 33. [Figure 35] FIG. 35 is a partially exploded view of the frame and a portion of the drive system of FIG. [Figure 36] 36 is a front perspective view of a portion of the frame and drive system of FIG. 33. FIG. [Figure 37] FIG. 37 is a partially exploded view of a drive mechanism included within the drive system of FIG. [Figure 38] 38 is a rear perspective view of the cleaning assembly of FIG. 33. FIG. [Figure 39] 39 and 40 are right and left perspective views, respectively, of the cleaning assembly of FIG. 38 shown without one or more parts to show internal components. [Figure 40] 39 and 40 are right and left perspective views, respectively, of the cleaning assembly of FIG. 38 shown without one or more parts to show internal components. [Figure 41] 41 and 42 are top and bottom perspective views of a cleaning assembly, according to an embodiment. [Figure 42] 41 and 42 are top and bottom perspective views of a cleaning assembly, according to an embodiment. [Figure 43] FIG. 43 is a perspective view of the cleaning assembly of FIGS. 41 and 42 with the shroud removed. [Figure 44] FIG. 44 is an illustration of a method for defining a cleaning schedule. DETAILED DESCRIPTION OF THE INVENTION
[0008] The devices and methods described herein can be used, for example, in at least semi-autonomous floor dust collection, dust collection, and / or scrubbing. In some embodiments, the apparatus includes a frame, a drive system supported by the frame, an electronics system supported by the frame, and a cleaning assembly coupled to the frame. The drive system is configured to move the frame along a surface. The cleaning assembly is configured to engage the surface and transfer debris from the surface to a storage volume supported by the frame. The electronics system has at least a processor and a memory. The processor is configured to define a path along which the drive system will travel and to redefine the path along which the drive system will travel based on at least one signal received from at least one sensor.
[0009] In some embodiments, a semi-autonomous cleaning robot includes a frame, a drive system, a cleaning assembly, and an electronics system. The drive system is supported by the frame and configured to move the frame along a surface. The drive system has at least one wheel configured to rotate about a first axis and a second axis non-parallel to the first axis. The cleaning assembly is coupled to the frame and configured to engage the surface and transfer debris from the surface to a storage volume supported by the frame. The electronics system is supported by the frame and includes at least a processor and a memory. The processor is configured to execute a set of instructions stored in the memory associated with defining a path. The drive system is configured to move the cleaning assembly along the path, and the cleaning assembly is configured to engage the surface and transfer debris from the surface to the storage volume. The processor is configured to define a redefined path along which the drive system is configured to move the cleaning assembly based on receipt of at least one signal associated with the path.
[0010] In some embodiments, a semi-autonomous cleaning robot includes a frame supporting at least one storage volume, a drive system coupled to the frame, a cleaning assembly coupled to the frame, and an electronics system supported by the frame. The drive system is configured to move the frame along a surface. The drive system has a set of wheels, each configured to rotate about a wheel axis in response to a different motor output from the set of motors. An angle defined between each wheel axis is substantially equal. Each wheel includes a set of rollers, each configured to rotate about an independent roller axis that is non-parallel to the wheel axis associated with that wheel. The cleaning assembly is configured to engage the surface and transport debris from the surface to the at least one storage volume. The electronics system is configured to send one or more signals to at least one motor from the set of motors indicating instructions to rotate the associated wheel about the associated wheel axis and move the cleaning assembly along the surface in a predetermined path.
[0011] A method for at least semi-autonomous cleaning of a surface using a cleaning robot with an electronics system configured to control at least a portion of the cleaning robot includes defining an initial dataset representing a map of a surface to be cleaned based on data received at a processor of the electronics system from at least one sensor included in the cleaning robot. The processor breaks the initial dataset into a plurality of area datasets, where each area dataset represents an area of the map. An intra-area dataset is defined for each area dataset. Each intra-area dataset represents an intra-area path along an associated area of the map based, at least in part, on a calculated efficiency associated with the cleaning robot cleaning a portion of the surface corresponding to that area. An inter-area dataset is defined to represent an inter-area path along the map based, at least in part, on combining each intra-area path and on a calculated efficiency associated with the cleaning robot moving substantially along the inter-area path and cleaning the surface.
[0012] As used herein, the singular forms "a," "an," and "the" include plural references unless the context clearly indicates otherwise. Thus, for example, the term "element" is intended to mean a single element or a combination of elements, and "material" is intended to mean one or more materials or combinations thereof.
[0013] As used herein, the term "set" may refer to a singular feature with multiple features or multiple parts. For example, when referring to a set of walls, the wall set can be considered one wall with multiple portions, or the wall set can be considered multiple distinct walls. Thus, a monolithically constructed item can include a set of walls. Such a wall set may include multiple portions that are either continuous or discontinuous from one another. For example, a monolithically constructed wall can include a set of detents and be said to form a wall set. A wall set can also be fabricated from multiple items that are produced separately and later joined together (e.g., via welding, adhesive, or any suitable method).
[0014] As used herein, the term "module" refers to any assembly and / or set of operatively coupled electrical components, which may include, for example, memory, a processor, electrical traces, optical connectors, software (executing in hardware), and / or the like. For example, a module executed in a processor can be any combination of hardware-based modules (e.g., field programmable gate arrays (FPGAs), application specific integrated circuits (ASICs), digital signal processors (DSPs)) and / or software-based modules (e.g., modules of computer code stored in memory and / or executed in a processor) capable of performing one or more specific functions associated with the module.
[0015] As used herein, the term "kinematics" describes the motion of a point, object, or system of objects without considering the cause of the motion. For example, the kinematics of an object can describe translational motion, rotational motion, or a combination of both translational and rotational motion. When considering the kinematics of a system of objects, known mathematical equations can be used to describe the motion of the object relative to a plane or set of planes, an axis or set of axes, and / or relative to one or more other objects contained within the system of objects.
[0016] As used herein, the terms “feedback,” “feedback system,” and / or “feedback loop” refer to a system in which past or present characteristics influence current or future actions. For example, a drive mechanism may be said to be a feedback system, where the state (e.g., position, direction, velocity, acceleration, etc.) of the drive mechanism depends on current or past states that are fed back to the drive mechanism. In some cases, a feedback system may be an electromechanical system including several relays, switches, and / or the like that can open or close an electrical circuit based on signals received from sensors, electrical flow or flow direction, and / or the like. In some cases, a feedback system may be controlled and / or implemented within a programmable logic controller (PLC), which may use control logic to perform one or more actions based on inputs from system components, the state of an electrical circuit, and / or the flow of power. In some cases, a PLC may include a control scheme such as, for example, a proportional-integral-derivative (PID) controller. Thus, the output of some feedback systems may be mathematically described by the sum of a proportional term, an integral term, and a derivative term. PID controllers are often implemented in one or more electronic devices. In such controllers, the proportional, integral, and / or derivative terms can be actively "tuned" to modify the characteristics of the feedback system.
[0017] Electronic devices often implement feedback systems to actively control the kinematics of mechanical systems to achieve and / or maintain a desired system state. For example, a feedback system can be implemented to control forces within a system (e.g., a mass-spring system and / or the like) by changing the kinematics and / or position of one or more components relative to any other components included within the system. Further extending, a feedback system can determine the current and / or past states (e.g., position, velocity, acceleration, force, torque, tension, power, etc.) of one or more components included within a mechanical system and return the past and / or current state values to, for example, a PID control scheme. In some cases, the electronic device can implement any suitable numerical analysis method or any combination thereof (e.g., Newton's Law, Gaussian Elimination, Euler's Method, LU Decomposition, etc.). Thus, based on the past and / or current states of one or more components, a mechanical system can be actively changed to achieve a desired system state.
[0018] In some embodiments, a device (e.g., a robot) for autonomous floor dust collection and scrubbing can include an electronics system configured to implement and / or execute a set of instructions and / or modules for controlling at least one of a drive system, cleaning assembly, replaceable cleaning head, vacuum source, pump, motor, and / or the like based on one or more signals associated with the robot's operating state and / or environmental conditions associated with the area to be cleaned. For example, in some embodiments, the electronics system can include at least a processor, memory, and power supply, as well as any suitable sensors, encoders, beacons, cameras, and / or the like (collectively referred to herein as "sensors"), and can perform any number of processes associated with controlling portions of the robot (e.g., via a feedback control system, PLC, PID, etc.), maintaining safe operation of the robot, and providing environmental awareness, such as localization and / or mapping. Such sensors can communicate (e.g., at least indirectly) with a processor and / or remote control device that communicates with the electronics system, such as a remote controller, mobile device, smartphone, tablet, laptop, personal computer, and / or the like.
[0019] By way of example, in some embodiments, the processor and / or other suitable controller may communicate with one or more laser transceivers, cameras, radios, encoders, inertial measurement units (IMUs), ranging sensors, and / or any other suitable devices configured to transmit data associated with at least one motion state, status, condition, etc. of the robot. Specifically, the laser transceiver may be a two-dimensional (2-D) laser scanner optical radar (LIDAR) system such as the UTM-30LX manufactured by Hokuyo Automatic Co., based in Japan. The camera may be a three-dimensional (3-D) camera such as the Kinect v2 optical camera and / or sensor manufactured by Microsoft Corp., based in Redmond, Washington, USA. The radio or wireless beacon may be a wireless transceiver (e.g., ultra-wideband radio) such as the DW1000 manufactured by decaWave, based in Dublin, Ireland. The encoder may be a wheel encoder or equivalent, such as the E3 series optical encoder manufactured by US Digital, based in Vancouver, Washington. The IMU can be a multi-axis multi-sensor device (e.g., a 3-axis compass, a 3-axis gyroscope, and a 3-axis accelerometer sensor) such as the PhidgetSpatial3 / 3 / 3 made by Phidgets, based in Calgary, Alberta, Canada. The ranging sensor can be an infrared (IR) distance sensor such as the GP2Y series made by Sharp, based in Japan. While specific components (e.g., sensors, transceivers, cameras, radios, encoders, IMUs, etc.) are described, the list of components is not a comprehensive list of electrical and / or electronic devices configured to facilitate operation of the embodiments described herein. Thus, any of the embodiments described herein can include any suitable electrical and / or electronic devices. Similarly, any of the embodiments described herein can include sensors or equivalents different from those listed above but which perform substantially the same functions.
[0020] In some embodiments, a processor of an electronics system included within the robot can execute a set of instructions, code, and / or modules associated with formulating a cleaning fluid. For example, the processor can execute a set of instructions and / or modules to formulate a cleaning fluid in which a predetermined volume of a desired cleaning chemical is mixed with a diluent (e.g., water) to have a desired dilution ratio for a given floor type, as described in further detail herein. In some embodiments, the electronics system can include a user interface, such as a display, to allow a user to interact with the robot and / or to graphically represent one or more operational states associated with the robot. In some embodiments, the electronics system and / or the processor included therein can be configured to send a signal to a remote control device (described above) indicating an instruction to present data graphically representing one or more operational states of the robot, a status associated with the surface being cleaned, and / or the like, on a display of the remote control device. For example, the processor may determine and / or define progress and / or plan reports based on one or more operating states of the robot, one or more environmental conditions associated with the area to be cleaned by the robot, and / or user input, and may send signals to a user interface and / or remote control device indicating instructions to graphically represent data associated with the one or more operating states and / or one or more environmental conditions.
[0021] In some embodiments, the robot can include a drive system configured to advance the robot along a surface and get the cleaning assembly (e.g., cleaning head or equivalent) into corners or other tight areas without the robot getting stuck, trapped, and / or otherwise unable to move. In some embodiments, the drive system can enable cleaning in close proximity to edges and corners, cleaning within areas with relatively complex layouts, and / or cleaning new locations without extensive programming. In some embodiments, the drive system can be such that each motorized wheel is associated with and / or driven by its own motor. Furthermore, in some embodiments, the drive system of the robot can be configured for holonomic motion, where the drive system can rotate each wheel about an associated axis while enabling translation of the robot with three degrees of freedom in a plane associated with the surface over which the robot is traveling. That is, the drive system can be configured for holonomic motion, which can enable rotation of the wheels and translation of the robot in the x and y directions. In some embodiments, the drive system arrangement can enable precise point turns (e.g., "zero degree" turns) while against a wall or in a corner. For example, in some embodiments, the robot can include a cleaning assembly or cleaning head that can have an edge and / or perimeter on an axis between two driven wheels that extends beyond the edge or perimeter of the robot (e.g., the drive system) and / or can be positioned in front of the drive system and / or other parts of the robot. Thus, the drive system can enable the cleaning assembly and / or cleaning head to be positioned into a corner and / or other object, clean the associated area, and then move out of the corner and / or out of contact with the object while still cleaning.
[0022] 1 is a schematic diagram of a device 100, such as a robot configured to clean a surface, according to an embodiment. Device 100 (also referred to herein as a “cleaning robot” or “robot”) includes at least a frame 110, a drive system 140, an electronics system 190, and a cleaning assembly 165. Cleaning robot 100 can be used to clean (e.g., vacuum, scrub, disinfect, etc.) any suitable surface area, such as, for example, floors of a home, commercial building, warehouse, etc. Robot 100 can be of any suitable shape, size, or configuration and can include one or more systems, mechanisms, assemblies, or subassemblies (not shown in FIG. 1 ) that can perform any suitable function associated with, for example, navigating a surface, mapping a surface, cleaning a surface, and / or the like.
[0023] The frame 110 of the robot 100 can be of any suitable shape, size, and / or configuration. For example, in some embodiments, the frame 110 can include a set of components or the like coupled to form a support structure configured to support the drive system 140, the cleaning assembly 165, and the electronics system 190. In some embodiments, the frame 110 can include any suitable components, such as, for example, sheets, tubes, rods, bars, etc. In some embodiments, such components can be formed from metals or metal alloys, such as aluminum, steel, and / or the like. In other embodiments, such components can be formed from thermoplastic materials and / or polymers, such as nylon, polyester, polycarbonate, polyacrylate, ethylene vinyl acetate, polyurethane, polystyrene, polyvinyl chloride (PVC), polyvinyl fluoride, poly(vinylimidazole), and / or hybrids and copolymers thereof.
[0024] In some embodiments, the frame 110 can include a set of components configured to define one or more interior volumes. For example, the frame 110 can include one or more sheet metal components, which may define one or more interior volumes. In other embodiments, the frame 110 can include and / or be coupled to a body, cover, skin, etc., which may define one or more interior volumes. In this embodiment, the frame 110 (or a body coupled to the frame 110) defines at least the debris volume 112. The debris volume 112 can be of any suitable shape, size, or configuration and can be selectively sealable. For example, in some embodiments, the frame 110 can be coupled to a body of the robot 100, which defines the debris volume 112. The body can include a lid or cover configured to close, cover, and / or otherwise obstruct an opening in the body that is in fluid communication with the debris volume 112 (e.g., via a tube, conduit, channel, opening, etc.). 1 , the cleaning assembly 165 can be in fluid communication with the debris volume 112. Thus, the cleaning assembly 165 can transfer waste, debris, fluids, and / or the like from a surface over which the robot 100 is moving to the debris volume 112. Similarly, the frame 110 can define and / or be coupled to a body that can define an electronics system volume, a cleaning solution volume, a solution collection volume, a dry dust volume, and / or any other suitable volume.
[0025] The drive system 140 of the robot 100 is coupled to and / or otherwise supported by the frame 110. The drive system 140 can include one or more wheels configured to roll along a surface and move the robot 100 thereon. In some embodiments, the one or more wheels can be, for example, omni-wheels or the like. In such embodiments, the wheels can be coupled to the frame and configured to rotate about an axis in response to a force. The wheel, for example, defines a circumference along which a set of rollers is disposed. The set of rollers can be relatively small rollers, each configured to rotate about an axis associated with that roller. The axis of each roller can, for example, be perpendicular to the axis about which the wheel rotates. In this manner, as the wheel is rotated about its axis, the rollers disposed along the circumference of the wheel can be configured to rotate about their associated axes, which in turn can propel the robot 100 in any suitable direction. In other words, the drive system 140 can be configured for holonomic motion.
[0026] In some embodiments, drive system 140 can include one or more motors configured to power (e.g., drive, rotate, spin, engage, activate, etc.) drive system 140. In some embodiments, the motors can be configured to rotate wheels of drive system 140 at any suitable rate and / or in any suitable direction (e.g., forward or backward). In some embodiments, drive system 140 can be a differential drive system including a first wheel coupled to a first motor and a second wheel coupled to a second motor. The first wheel and second wheel can be disposed on opposite sides of frame 110, for example. In some embodiments, electronic system 190 can be operably coupled (e.g., electrically connected) to the first motor and the second motor such that electronic system 190 can send electronic signals associated with operating the motors. Additionally, drive system 140 can include one or more wheels coupled to frame 110 in a passive arrangement. That is, drive system 140 can include any suitable number of wheels that are not coupled to a motor.
[0027] In some embodiments, the drive system of the robot can be a differential drive system, a single steerable wheel drive system, and / or an omnidirectional drive system. In some embodiments, the differential drive system and / or the omnidirectional drive system, each of which rotates an associated wheel and drives the robot along a surface, can use two or more motors. Such wheels can be, for example, omnidirectional wheels (also referred to herein as "omni-wheels") configured to provide rotation about at least two axes, which can enable the robot to travel in any suitable direction. In some embodiments, the single steerable wheel drive system can use at least one motor to rotate the steerable wheel and drive the robot along a surface, and / or at least one motor or other input mechanism to steer the steerable wheel.
[0028] In some embodiments, the motors can include clutches, brakes, or the like configured to substantially lock the motors in response to a signal or lack of a signal from the electronics system 190. Similarly, the motors can be placed in a locked configuration to limit the movement of the robot 100 in response to flow power or lack of power from the electronics system 190. In some instances, the electronics system 190 can be configured to send a first signal to a first motor, causing the first motor to rotate a first wheel in a first rotational direction, and a second signal to a second motor, causing the second motor to stop rotating the second wheel in a second rotational direction opposite the first rotational direction. Thus, the electronics system 190 can send a set of signals to the drive system 140 to turn the robot 100 in response to signals from the electronics system 190, as described in further detail herein. In some embodiments, the arrangement of the drive system 140 can enable the robot 100 to get the cleaning assembly 165 into corners and / or other tight areas that may otherwise be missed with some known drive systems.
[0029] Although drive system 140 is described above as including a first wheel and a second wheel coupled to a first motor and a second motor, respectively, in other embodiments, drive system 140 can include any suitable number of wheels and / or motors. For example, in some embodiments, drive system 140 can include three wheels, each coupled to its own motor. In some embodiments, the wheels can be coupled to frame 110 in a generally triangular arrangement or the like. For example, in some embodiments, the wheels can be positioned at an angle relative to the other wheels, such as 120 degrees. As mentioned above, each wheel can be an omniwheel or the like. Accordingly, electronics system 190 can be configured to send a set of signals to drive system 140, and more specifically, to one or more motors included within drive system 140, to cause the one or more motors to rotate their associated wheels and thereby move robot 100 in a desired direction.
[0030] In other embodiments, drive system 140 can include a single steerable wheel assembly and any suitable number of passive wheels (as described above). The steerable wheel assembly can include at least one motor configured to rotate a wheel included within the steerable wheel assembly. The steerable wheel assembly can be rotatably coupled to frame 110. In some embodiments, the steerable wheel assembly can include a motor configured to rotate the steerable wheel assembly relative to frame 110. In this manner, electronics system 190 can send a set of signals to drive system 140 to rotate the wheel about a first axis and to rotate the steerable wheel assembly about a second axis perpendicular to the first axis. Thus, drive system 140 can move robot 100 in any suitable direction in response to a set of signals received from electronics system 190.
[0031] The cleaning assembly 165 included within the robot 100 can be of any suitable shape, size, and / or configuration. As mentioned above, the cleaning assembly 165 is coupled to and / or otherwise supported by the frame 110. More specifically, in some embodiments, the cleaning assembly 165 can be coupled to and / or suspended from the frame 110 via any suitable linkage or equivalent. In some embodiments, such a linkage can enable movement of the cleaning assembly 165 relative to the frame 110, for example. For example, in some embodiments, the linkage can be configured to move the cleaning assembly 165 closer to or away from the frame 110, which in turn can move the cleaning assembly 165 away from or closer to a surface along which the robot 100 moves. In some embodiments, the robot 100 can include an actuator and / or equivalent configured to move the linkage relative to the frame 110 and place the cleaning assembly 165 in a desired position.
[0032] The cleaning assembly 165 can include any suitable cleaning mechanism, brush, roller, disc, scrubber, orbital, and / or the like configured to engage a surface over which the robot 100 travels. For example, in some embodiments, the cleaning assembly 165 can include a housing or the like that can define a vacuum chamber and can include one or more cylindrical brushes rotatably coupled to the housing and disposed at least partially within the vacuum chamber. The one or more brushes can be operably coupled to a motor configured to rotate the one or more brushes relative to the housing. In some embodiments, the cleaning assembly 165 can include a cleaning head or the like that can include one or more cylindrical cleaning members, disc cleaning members, orbital cleaning members, and / or the like. Such a cleaning head and / or one or more cleaning members included therein can be interchangeable from one type (e.g., cylindrical cleaning members) to another type (e.g., orbital cleaning members), thereby enabling the cleaning assembly 165 to clean different types of surfaces.
[0033] In some embodiments, the robot 100 can include a skirt or the like (not shown in FIG. 1 ) that can form a squeegee and / or the like that surrounds at least a portion of the robot 100 and directs debris toward the cleaning assembly 165. For example, in some embodiments, the skirt can be coupled to the frame 110 and configured to extend beyond a rear portion of the robot 100 such that at least a portion of the skirt contacts the surface. In some embodiments, the portion of the skirt that contacts the surface can have a width or length that exceeds the width of the frame 110. In some embodiments, at least a portion of the skirt is formed from and / or includes a substantially resilient, compliant, and / or otherwise flexible material that can deform when placed in contact with the surface. Thus, as the robot 100 is moved along the surface (e.g., via the drive system 140), the skirt can follow the robot 100 and limit and / or substantially prevent the robot 100 from passing over debris. In some embodiments, the skirt can be coupled to the frame 110 via a biasing member and / or spring configured to apply a force to a portion of the skirt to maintain contact between the skirt and the surface. The skirt can thus be used as a squeegee or equivalent configured to confine and / or substantially prevent the robot 100 from passing fluid through it. In other words, the skirt can act as a squeegee or equivalent that can absorb and / or direct fluid such that substantially all of the fluid (e.g., the cleaning fluid or equivalent used) is absorbed and / or entrained within the flow of debris entering the cleaning assembly 165.
[0034] The cleaning assembly 165 can also include a pump or the like configured to generate a negative pressure within the vacuum chamber. In some embodiments, the pump can be coupled to the housing and in fluid communication with the vacuum chamber. In other embodiments, the pump can be disposed within the debris volume 112 of the frame 110 and in fluid communication with the vacuum chamber, for example, via a tube, conduit, channel, opening, port, etc. The cleaning assembly 165 is configured to communicate with the electronics system 190 and to send signals to and / or receive signals from the electronics system 190 associated with the operation of the cleaning assembly 165. For example, in some embodiments, the electronics system 190 can send signals to the cleaning assembly 165 that can actuate a linkage coupling the cleaning assembly 165 to the frame 110, transition the pump from an “on” operating state to an “off” operating state and / or change the flow rate through the pump, transition a motor operably coupled to one or more brushes from an “on” operating state to an “off” operating state and / or change its output speed, and / or the like. Thus, the cleaning assembly 165 can be configured to engage and clean a surface over which the robot 100 travels. Additionally, in some embodiments, the electronics system 190 can control the pressure applied to the surface being cleaned by, for example, the cleaning members, brushes, discs, orbitals, and / or cleaning heads.
[0035] As described above, the electronics system 190 included within the robot 100 can control at least a portion thereof. The electronics system 190 can include at least a memory, a processor, and an input / output (I / O) interface. The memory can be, for example, random access memory (RAM), a memory buffer, a hard drive, read-only memory (ROM), erasable programmable read-only memory (EPROM), and / or the like. In some embodiments, the memory stores instructions for causing the processor to execute modules, processes, and / or functions associated with controlling one or more mechanical and / or electrical systems included within the robot 100, as described above. The processor of the electronics system 190 can be any suitable processing device, such as a general-purpose processor (GPP), a central processing unit (CPU), an accelerated processing unit (APU), a field programmable gate array (FPGA), an application-specific integrated circuit (ASIC), or the like. The processor can be configured to invoke or execute a set of instructions or code stored in the memory associated with the operation of one or more mechanical and / or electrical systems included within the robot 100. The I / O interface may be, for example, a Universal Serial Bus (USB) interface, an Institute of Electrical and Electronics Engineers (IEEE) 1394 interface (FireWire), or a Thunderbolt TMThe I / O interface can be a Serial ATA (SATA) interface or an external Serial ATA (eSATA) interface, a network interface card (including one or more Ethernet ports and / or radio waves, such as Wireless Fidelity (WiFi) radio, Bluetooth radio, or the like). The I / O interface is configured to send signals to and / or receive signals from the processor. Similarly, the I / O interface can be configured to receive data from and / or send data to any suitable electrical and / or electronic device included within robot 100.
[0036] In some embodiments, electronics system 190 can be configured to control any suitable portion of robot 100 using a feedback control method, such as, for example, a PID control scheme and / or the like. For example, I / O interface can receive signals associated with operating conditions or the like from one or more electrical and / or electronic components (not shown in FIG. 1 ), such as one or more motors, pumps, actuators, and / or sensors (as described above) included within robot 100. In response to receipt, I / O interface can transmit data associated with the signals to a processor, which can in turn execute a set of instructions associated with controlling a subsequent action of drive system 140 and / or cleaning assembly 165 based, at least in part, on the data received from the I / O interface. The processor can then transmit data associated with the subsequent action to the I / O interface, which can in turn transmit signals indicative of instructions to perform the subsequent action to the associated electrical and / or electronic components (e.g., motors, actuators, pumps, etc.).
[0037] As an example, in some embodiments, the processor may execute a set of instructions, code, and / or modules associated with at least temporarily maintaining the robot 100 within a predetermined distance from an object, such as a wall. More specifically, in some cases, the robot 100 may be configured to first delineate the perimeter of the area to be cleaned by traveling parallel to and / or adjacent to a set of walls that define the area. In such cases, the processor may receive signals from one or more sensors (e.g., such as those described above) and, based on the data contained therein, may define an operational state of the drive system 140 operable, for example, in maintaining the edge or perimeter of the robot 100 and / or cleaning assembly 165 within a predetermined distance (e.g., within 10 cm, within 5 cm, within 1 cm, and / or the like) from a wall, as described in further detail herein.
[0038] In some cases, the I / O interface can receive data associated with user input or the like and can transmit the data to the processor. The user input can be associated with, for example, one or more system parameters or operating conditions (e.g., the formulation of the cleaning fluid, the flow rate at which the cleaning fluid should be dispensed, the cleaning head and / or brush speed, the desired speed of the robot 100, a map of the surfaces to be cleaned by the robot 100, the floor plan, floor type, etc., an updated map and / or floor plan of the surfaces incorporating one or more changes in the environment, and / or the like). In this manner, the electronics system 190 can be configured to control the robot 100 in at least a semi-autonomous manner based, at least in part, on data associated with the operating conditions of the robot 100, environmental conditions associated with the environment in which the robot 100 operates, the user input, and / or the like.
[0039] In some cases, the I / O interface can be configured to transmit data via a wired and / or wireless network (not shown in FIG. 1 ) to a remote electronic device (e.g., an external device), such as a handheld controller, a computer, a laptop, a mobile device, a smartphone, a tablet, and / or the like (not shown in FIG. 1 ). For example, the remote electronic device can include at least a processor, a memory, and a display and can launch, for example, a personal computer application, a mobile application, a web page, and / or the like. In this manner, a user can operate the remote electronic device such that data associated with robot 100 is graphically represented on the display of the remote electronic device, as described in further detail herein. Additionally, the I / O interface can receive data associated with any of the aforementioned system parameters and / or operating conditions and / or any other control data from the remote electronic device.
[0040] 2-8 illustrate a device 200, such as a robot configured to clean a surface, according to an embodiment. The device 200 (also referred to herein as a “cleaning robot” or “robot”) includes at least a frame 210, a drive system 240, an electronics system 290 ( FIGS. 5-7 ), and a cleaning assembly 265. The cleaning robot 200 can be used to clean (e.g., vacuum, scrub, disinfect, etc.) any suitable surface area, such as, for example, a floor of a home, commercial building, warehouse, etc. The robot 200 can be of any suitable shape, size, or configuration and can include one or more systems, mechanisms, assemblies, or subassemblies that can perform any suitable function associated with, for example, navigating a surface, mapping a surface, cleaning a surface, and / or the like.
[0041] The frame 210 of the robot 200 can be of any suitable shape, size, and / or configuration. For example, in some embodiments, the frame 210 can include a set of components, or the like, coupled to form a support structure configured to support the drive system 240, the cleaning assembly 265, and the electronics system 290. More specifically, in this embodiment, the frame 210 includes a storage portion 211 and a support portion 220 (see, e.g., FIGS. 2-6 ). As discussed above with reference to the frame 110, the frame 210 can include any suitable components, such as, for example, sheets, tubes, rods, bars, etc. In some embodiments, such components can be formed from metals or metal alloys, such as aluminum, steel, and / or the like. In other embodiments, such components can be formed from thermoplastics and / or polymers, such as nylon, polyester, polycarbonate, polyacrylate, ethylene vinyl acetate, polyurethane, polystyrene, polyvinyl chloride (PVC), polyvinyl fluoride, poly(vinylimidazole), and / or hybrids and copolymers thereof. As shown in FIGS. 2-5, in this embodiment, frame 210 can include a set of mounts 219, each configured to support an electronic component included within electronics system 290 (e.g., each supporting a laser emitter / sensor 294 included within electronics system 290).
[0042] The storage portion 211 of the frame 210 can include a set of components configured to define a debris cavity 212 (see, e.g., FIG. 4), a vacuum source cavity 215 (see, e.g., FIG. 4), and an electronics system cavity 216 (see, e.g., FIG. 5). The debris volume 212 can be of any suitable shape, size, or configuration. As shown in FIG. 2, the storage portion 211 of the frame 210 defines an opening 213 configured to place the debris volume 212 in fluid communication with a cleaning assembly 265. Thus, the cleaning assembly 265 can transfer waste, debris, fluids, and / or the like from a surface over which the robot 200 is moving to the debris volume 212, as described in further detail herein.
[0043] The vacuum source cavity 215 is configured to receive, house, and / or otherwise accommodate the vacuum source 285. The vacuum source 285 can be any suitable device and / or mechanism configured to generate a negative pressure differential, thereby providing a suction force. For example, the vacuum source 285 can be a vacuum pump (e.g., a piston-driven pump, a rotary vane pump, a rotary screw pump, a diaphragm pump, and / or the like) that can draw a flow of fluid (e.g., a gas such as air) therethrough. Although not shown in FIGS. 2-6 , the housing portion 211 of the frame 210 can define an opening configured to place the debris volume 212 in fluid communication with the vacuum source cavity 215. Thus, when the vacuum source 285 is in an “on” operating state (e.g., receiving a flow of electrical power), the vacuum source 285 can be configured to generate a negative pressure differential, thereby generating a suction force within the debris cavity 212. Additionally, when the debris cavity 212 is in fluid communication with the cleaning assembly 265 via the opening 213, suction within the debris cavity 212 can draw waste, debris, fluid, dirt, and / or the like from the cleaning assembly 265 into the debris cavity 212, as described in further detail herein. Although not shown in FIGS. 2-6 , the robot 200 can include any suitable filter or the like disposed within the opening configured to place the debris volume 212 in fluid communication with the vacuum source cavity 215. The filter can thus limit the amount of undesirable debris that is drawn into the vacuum source 285.
[0044] 5 , electronics system cavity 216 is configured to receive at least a portion of electronics system 290. More specifically, storage portion 211 of frame 210 can include walls 217 upon which at least a portion of electronics system 290 is mounted. In some embodiments, walls 217 can be configured to physically and fluidly isolate debris cavity 212 and vacuum source cavity 215 from electronics system cavity 216. In this manner, electronic components are not exposed to the volume of debris transported into debris cavity 212. In some embodiments, electronics system cavity 216 can be large enough to house at least a portion of electronics system 290, such as, for example, a printed circuit board (PCB), processor, memory, radio, power distribution components, battery 291, and / or the like.
[0045] Although not shown in FIGS. 2-8 , in some embodiments, the storage portion 211 can define any other suitable cavity, volume, reservoir, and / or the like. For example, in some embodiments, the storage portion can include a dry debris cavity and a wet debris cavity. In such embodiments, the dry debris cavity can be configured to receive substantially dry debris, such as waste, dirt, dust, etc., that may be collected during a dust collection process or the like. Similarly, the wet debris cavity can be configured to receive substantially wet debris, such as may result from scrubbing a surface using a cleaning fluid and one or more brushes and subsequently drawing the used cleaning fluid into the wet debris cavity.
[0046] In some embodiments, the storage portion can selectively define a cleaning fluid cavity, which can include one or more volumes that can be placed in fluid communication to allow one or more solid, powdered, and / or fluid products to mix and form a cleaning fluid. As an example, the storage portion of the frame can include a cleaning fluid cavity with a cleaning product volume and a diluent volume. In some cases, the robot, and more specifically, the electronics system included therein, can send a signal to one or more pumps or the like that can transfer at least a portion of the cleaning product disposed in the cleaning product volume into the diluent volume (or vice versa) and mix the cleaning product with a diluent, such as water. In other embodiments, such a cleaning fluid cavity can define a mixing volume in which the cleaning product and diluent are mixed.
[0047] 2 and 3 , the storage portion 211 of the frame 210 includes a first lid 214 configured to selectively cover the dust cavity 212 and the vacuum source cavity 215, and a second lid 218 configured to selectively cover the electronics system cavity 216. In other words, the first lid 214 can be moved from a first position, in which the first lid 214 covers the dust cavity 212 and the vacuum source cavity 215, to a second position, in which a user can access the dust cavity 212 and / or the vacuum source cavity 215. Similarly, the second lid 218 can be moved from a first position, in which the second lid 218 covers the electronics system cavity 216, to a second position, in which a user can access at least a portion of the electronics system 290.
[0048] As mentioned above, the frame 210 also includes a support portion 220 (see, e.g., FIGS. 5-7 ). The support portion 220 can be of any suitable shape, size, and / or configuration. For example, the support portion 220 can include any suitable components, parts, mechanisms, linkages, and / or the like configured to support, for example, the storage portion 211 of the frame 210, the drive system 240, and / or the cleaning assembly 265. In this embodiment, the support portion 220 includes a top plate 221, a bottom plate 223, a cleaning assembly mount 227, a rear skirt mount 233, and at least one drive mechanism mount, as shown in FIGS. 5 and 6 . More specifically, the support portion 220 includes a first drive mechanism mount 225A and a second drive mechanism mount 225B coupled between the top plate 221 and the bottom plate 223. The first drive mechanism mount 225A is configured to couple to and / or support a first drive mechanism 241A included within the drive system 240, as described in further detail herein, and the second drive mechanism mount 225B is configured to couple to and / or support a second drive mechanism 241B of the drive system 240.
[0049] The top plate 221 is coupled to the storage portion 211 of the frame 210 and can couple the support portion 220 thereto. The bottom plate 223 is opposite the top plate 221 and is configured to support drive mechanism mounts 225A and 225B. The rear skirt mount 233 is coupled to the bottom plate 222 and includes an end portion 234 coupled to the rear skirt 235 (see, e.g., FIG. 5 ). In some embodiments, the rear skirt 235 can be configured to engage a surface along which the robot 200 travels and reduce the amount of dust not entrained within the cleaning assembly 265, as described in further detail herein. The cleaning assembly mount 227 can be any suitable mount, linkage, assembly, device, etc. configured to movably couple the cleaning assembly 265 to the support portion 220. For example, as shown in FIGS. 6 and 7 , the cleaning assembly mount 227 includes a mating linkage 228, a pivot member 229, and an actuation arm 230. The coupling link 228 is rotatably coupled at a first end to the pivot member 229 and configured to couple at a second end to a mounting portion 279 of the cleaning assembly 265 (see, e.g., FIGS. 4 and 7 ). Similarly, the actuation arm 230 is coupled at a first end to the top plate 221 and at a second end to the mounting portion 279 of the cleaning assembly 265. Although not shown in FIGS. 2-8 , the robot 200 may include an actuator or the like configured to move the actuation arm 230 relative to the support portion 220, and similarly, to move the cleaning assembly 265 relative to the support portion 220, as described in further detail herein. Thus, the cleaning assembly 265 may be coupled to the support portion 220 of the frame 210 and moved relative to the support portion 220 to position the cleaning assembly 265 at a desired location relative to a surface along which the robot 200 will travel. Additionally, in some cases, the cleaning assembly 265 can be moved relative to the support portion 220 to modulate the amount of pressure exerted by the cleaning members and / or cleaning head on a surface (e.g., based on floor type, type and / or amount of debris, and / or the like).
[0050] As mentioned above, drive system 240 of robot 200 is coupled to and / or otherwise supported by support portion 220 of frame 210. Drive system 240 can be any suitable system, mechanism, machine, assembly, etc. configured to move robot 200 along a surface. For example, in the present embodiment, drive system 240 includes first drive mechanism 241A and second drive mechanism 241B (see, e.g., FIGS. 6 and 7 ). As mentioned above, first drive mechanism 241A is coupled to first drive mechanism mount 225A of support portion 220 of frame 210, and second drive mechanism 241B is coupled to second drive mechanism mount 225B of support portion 220.
[0051] First drive mechanism 241A includes motor 242A, first wheel 248A, and second wheel 250A. Similarly, second drive mechanism 241B includes motor 242B, first wheel 248B, and second wheel 250B. In some embodiments, first drive mechanism 241A and second drive mechanism 241B may be substantially similar in form and function. Accordingly, the following discussion of first drive mechanism 241A also applies to second drive mechanism 241B, and therefore, second drive mechanism 241B will not be described in further detail herein.
[0052] As shown in FIG. 7 , second wheel 250A is coupled to the output of motor 242A (not shown). Second wheel 250A can be of any suitable size or configuration. In some embodiments, second wheel 250A can be directly coupled to the output of motor 242A. In other embodiments, second wheel 250A can be indirectly coupled to the output of motor 242A, for example, via a belt drive, a chain drive, a gear drive, and / or any other suitable intervening structure. In some embodiments, motor 242A and / or second wheel 250A can include, for example, an encoder, a tachometer, an accelerometer, and / or any other suitable sensor or equivalent configured to determine the rotational position, velocity, and / or acceleration of second wheel 250A and / or the output of motor 242A. As described in further detail herein, such encoders and / or sensors can be in communication with electronics system 290 and can send signals to and / or receive signals from electronics system 290 associated with the operation of first drive mechanism 241A. As described above, the second drive mechanism 241B can be arranged in a substantially similar manner to the first drive mechanism 241A and can therefore transmit signals to and / or receive signals from the electronics system 290 associated with the operation of the second drive mechanism 241B.
[0053] The first wheel 248A included in the first drive mechanism 241A can be of any suitable size and / or configuration. The first wheel 248A is rotatably coupled to the support portion 220 of the frame 210 and configured to rotate about an axis, A1, as shown in FIG. 8 . In this embodiment, the first wheel 248A can be, for example, an omni-wheel, a Mecanum wheel, and / or the like, which defines a circumference and includes a set of rollers 249 rotatably arranged along the circumference. More specifically, in this embodiment, the first wheel 248A includes two adjacent sets of rollers arranged along the circumference of the wheel such that the rollers 249 included in one set of rollers are offset circumferentially from the rollers 249 included in the other set of rollers. The rollers 249 can be relatively small rollers, each configured to rotate about an axis associated with that roller 249 (e.g., the roller 249 is configured to rotate about its associated axis, A2, as shown in FIG. 8 ). The axis of each roller 249 (e.g., as shown with axis A2) can be perpendicular to the axis A1 about which the wheel 248 rotates, for example. In this manner, as the wheel 248 rotates about its axis A1, each roller 249 disposed around the circumference of the wheel 248 can be configured to rotate about its associated axis (e.g., A2), which in turn can cause the robot 200 to advance in any suitable direction. Although shown and described as being perpendicular, in other embodiments, the axis of rotation for each roller 449 can be disposed at any suitable angle relative to axis A1. For example, in some embodiments, the axis of rotation for each roller 449 can be disposed at an angle of approximately 45 degrees relative to axis A1.
[0054] As described above, first drive mechanism 241A and second drive mechanism 241B can receive signals from and / or transmit signals to electronics system 290 associated with operation of drive system 240. In some cases, electronics system 290 can transmit substantially equivalent signals and / or substantially equal amounts of power to motor 242A of first drive mechanism 241A and motor 242B of second drive mechanism 241B, and in response, motors 242A and 242B can rotate second wheels 250A and 250B, respectively, with substantially the same speed (e.g., rotational speed and direction). Thus, drive system 240 can move robot 200 in a substantially linear direction (e.g., rotational motion tangent to a plane associated with the surface) along a surface (e.g., a floor to be cleaned). That is, when the first drive mechanism 241A and the second drive mechanism 241B receive substantially the same input from the electronics system 290, the motor 242A of the first drive mechanism 241A and the motor 242B of the second drive mechanism 241B rotate the second wheels 250A and 250B, respectively, at substantially the same speed, which in turn moves the robot 200 forward.
[0055] In some cases, first drive mechanism 241A can receive input from electronics system 290 that is different from the input received by second drive mechanism 241B, which in some cases can be operable in changing the translation speed and / or direction of robot 200 relative to a surface. In some cases, first drive mechanism 241A can receive input from electronics system 290 that causes motor 242A of first drive mechanism 241A to rotate second wheel 250A in a first rotational direction, while second drive mechanism 241B receives input from electronics system 290 that causes motor 242B of second drive mechanism 241B to rotate second wheel 250B in a second rotational direction opposite the first rotational direction. In such cases, the opposite rotational direction between second wheels 250A and 250B can result in a reduced turning radius, for example, compared to second wheel 250A being held in a fixed position while second wheel 250B is rotated (or vice versa). In some cases, such an arrangement can be, for example, a “zero degree turn” arrangement or the like. Thus, the arrangement of robot 200 can be such that cleaning assembly 265 can be forced into corners and / or other tight spaces (e.g., within 5 centimeters of a wall or corner) that could otherwise cause robot 200 to become stuck and / or the like, as described in further detail herein.
[0056] 2-4 , the cleaning assembly 265 included in the robot 200 can be of any suitable shape, size, and / or configuration. As mentioned above, the cleaning assembly 265 is coupled to and / or otherwise supported by the support portion 220 of the frame 210. More specifically, in some embodiments, the cleaning assembly 265 includes a mounting portion 279 that is coupled to a cleaning assembly mount 227 of the support portion 220 of the frame 210. As mentioned above, in some embodiments, the arrangement of the cleaning assembly mount 227 included in the support portion 220 of the frame 210 and the mounting portion 279 of the cleaning assembly 265 can be such that the cleaning assembly 265 can be moved relative to the frame 210 (e.g., via an actuator and / or actuation arm 230 of the support portion 220). For example, in some embodiments, the cleaning assembly 265 can be moved closer to or away from the frame 210, which in turn can move the cleaning assembly 265 away from or closer to, respectively, the surface along which the robot 200 moves.
[0057] Although not specifically shown in FIGS. 2-8 , the cleaning assembly 265 can include any suitable cleaning mechanism, brush, scrubber, and / or the like configured to engage a surface over which the robot 200 travels. For example, in some embodiments, the cleaning assembly 265 can include a housing or the like that can define a vacuum chamber and can include one or more cylindrical brushes rotatably coupled to the housing and disposed at least partially within the vacuum chamber. The one or more brushes can be operably coupled to a motor configured to rotate the one or more brushes relative to the housing. The cleaning assembly 265 also can include a pump or the like configured to generate a negative pressure within the vacuum chamber. In some embodiments, the pump can be coupled to the housing and in fluid communication with the vacuum chamber. In such embodiments, the pump can be configured to transfer a flow of cleaning fluid or the like from a containment volume (e.g., a cleaning fluid cavity, as described above) to the cleaning assembly 265, which in turn can dispense, distribute, spray, etc. the cleaning fluid onto a surface being cleaned by the cleaning assembly 265. In other embodiments, the pump can be, for example, a vacuum source 285 disposed within the vacuum cavity 215 of the frame 210 and in fluid communication with the cleaning assembly 265 via the opening 213, as described above. In still other embodiments, the robot 200 can include a pump configured to transfer cleaning fluid to the cleaning assembly 265 and a vacuum source 285 configured to transfer debris from the cleaning assembly 265 into the debris cavity 212. In some embodiments, the cleaning assembly 265 can be substantially similar to or identical to any of the cleaning assemblies described herein.
[0058] At least a portion of the cleaning assembly 265 is configured to communicate with the electronics system 290 and to send signals to and / or receive signals from the electronics system 290 associated with operation of the cleaning assembly 265. For example, in some cases, the electronics system 290 can send signals to the cleaning assembly 265 and / or actuators that can be operable in moving the cleaning assembly 265 relative to the frame 210. In some cases, the electronics system 290 can send signals operable in transitioning a pump (e.g., the vacuum source 285 and / or the like) between an “off” and an “on” operating state and / or to vary the flow rate through the pump. Furthermore, in some cases, the electronics system 290 can be configured to control the flow rate through the pump and / or vacuum source 285 based, at least in part, on data received from one or more sensors (e.g., based on the speed of the robot). In other cases, the electronics system 290 may send signals that may be operable in transitioning the motor of the cleaning assembly 265 between an "off" and an "on" operating state, which in turn may be operable in stopping the rotation of the set of brushes or initiating the rotation of the set of brushes, respectively. The cleaning assembly 265 may thus be configured to engage and clean a surface over which the robot 200 travels, as described in further detail herein.
[0059] As described above, the electronics system 290 included within the robot 200 can control at least a portion of the drive system 240 and / or the cleaning assembly 265. As described above, the electronics system 290 can include at least a memory, a processor, and an input / output (I / O) interface. Additionally, the electronics system 290 can include any suitable wireless, power distribution components, a battery 291, and / or the like. In some embodiments, the battery 291 can be a high-energy density battery, such as a LiFePO4 battery. In some embodiments, the battery 291 is a 51.2 volt (V), 60 ampere-hour (A / h) LF-G48V-60 battery manufactured by BatterySpace, based in California, USA. The memory, processor, and / or I / O interface can be substantially similar to the individual components included within the electronics system 190 described above with reference to FIG. 1 . Accordingly, the memory, processor, and / or I / O interface will not be described in further detail herein.
[0060] Electronics system 290 can be configured to control any suitable portion of robot 200 using, for example, a feedback control method, such as a PID control scheme and / or the like. For example, electronics system 290 can include and / or communicate with one or more electrical and / or electronic components, such as any number of cameras, transceivers (e.g., radio beacons, optical transceivers, and / or the like), encoders, odometers, tachometers, accelerometers, inertial measurement units (IMUs), proximity sensors, relay logic, switches, and / or the like (collectively referred to herein as “sensors”). In some embodiments, electronics system 290 can include and / or communicate with any of the aforementioned sensors. Accordingly, the sensors can sense, detect, and / or otherwise determine one or more operating conditions associated with robot 200 and / or one or more environmental conditions associated with the environment in which robot 200 is placed, as described in detail above.
[0061] Expanding further, in this embodiment, electronics system 290 includes and / or communicates with two laser transceivers 294 coupled to frame 210 via mounts 219. Although not shown in FIGS. 2-8 , electronics system 290 may also include and / or communicate with one or more encoders, odometers, accelerometers, and / or IMUs included within drive system 240. Laser transceiver 294 may be, for example, an optical radar (LIDAR) and may be configured to emit a laser beam (e.g., visible light, infrared light, and / or the like) and configured to sense and / or otherwise determine an amount and / or delay of reflection, refraction, dissipation, and / or the like associated with the emitted laser beam. Thus, laser transceiver 294 may be configured to sense the relative position of objects within an environment and / or the like. 2-8 , robot 200 may include any other suitable devices configured to determine one or more conditions associated with the operation of robot 200, such as, for example, one or more cameras, video recorders, sound and / or radio wave transceivers, proximity sensors, touch and / or pressure sensors, and / or the like. Additionally, such devices and / or sensors may be configured to send signals to and / or receive signals from I / O interfaces of electronics system 290.
[0062] In some cases, the I / O interface may transmit data associated with one or more signals received from the laser transceiver 294 (or any other suitable sensor) to the processor. The processor may then execute instructions, code, a set of modules, etc. associated with controlling one or more subsequent actions of the drive system 240 and / or the cleaning assembly 265 based, at least in part, on the data received from the I / O interface. The processor may then transmit data associated with the one or more subsequent actions to the I / O interface, which may in turn transmit signals indicative of instructions to perform the one or more subsequent actions to associated electrical and / or electronic components (e.g., an actuator (not shown in FIGS. 2-8 ), such as an actuator coupled between the frame 210 and the cleaning assembly 265; a pump, such as the vacuum source 285; a motor, such as motors 242A and 242B of the drive system 240).
[0063] For example, in some embodiments, laser transceiver 294 can sense proximity between a portion of robot 200 and an object and can transmit a signal associated therewith to the I / O interface. Based at least in part on predetermined criteria and / or thresholds associated with proximity data (e.g., stored in memory or the like), the processor can implement and / or execute one or more processes and / or modules operable in determining a subsequent action of at least a portion of robot 200. For example, in some instances, the processor can implement and / or execute one or more processes operable in at least temporarily stopping robot 200 (e.g., withholding power from drive system 240 and / or other suitable means of preventing movement of robot 200 along a surface). As a result, robot 200 can be configured to at least pause and / or otherwise stop, for example, when the processor determines that the proximity between robot 200 and an object meets a criterion (e.g., is within a predetermined proximity). In some cases, the robot 200 can be paused and / or stopped for a sufficient time to determine if the object is moving relative to the stationary robot 200. In some cases, if the object is stationary, the robot 200 and / or one or more sensors can collect data associated with the object and / or surface and, for example, can redefine or remap the cleaning path and / or the like.
[0064] While the I / O interface is described above as receiving one or more signals and / or inputs from the laser transceiver 294 and / or any other suitable sensor, etc., in some cases, the I / O interface can receive data associated with user input or the like and transmit the data to a processor, which can, in response, determine one or more subsequent actions of at least a portion of the robot 200. In some cases, the user input can be associated with one or more system parameters or operating conditions (e.g., a formulation of the cleaning fluid, a flow rate at which the cleaning fluid should be dispensed, a cleaning head and / or brush speed, a desired speed of the robot 200; an updated map and / or floor plan of surfaces to be cleaned by the robot 200, incorporating one or more changes in the environment, such as a map, floor plan, floor type, etc., and / or the like). For example, in some cases, a user can type, select, and / or otherwise input data presented on a user interface (e.g., a display, such as a touchscreen display or the like). In other cases, the I / O interface may receive signals associated with user input at a remote control device, such as a mobile device, smartphone, tablet, laptop, PC, and / or the like. For example, the electronics system 290 and / or the I / O interface may include a network interface card or the like, which may have a wireless radio, such as a Wireless Fidelity (WiFi) radio, a Bluetooth® radio, and / or any other suitable wireless radio, that may communicate with the remote control device over one or more networks. Thus, the electronics system 290 may be configured to control at least a portion of the robot 200 in response to signals received from the laser transceiver 294 and / or any other suitable sensor, as well as any suitable user input via the user interface and / or via the remote electronic device.
[0065] In some cases, the I / O interface can be configured to receive signals associated with an original mapping of the surface to be cleaned and / or initialization of the robot 200 relative to the surface (e.g., from the laser transceiver 294 and / or from user input at the user interface). For example, in some cases, prior to the initial cleaning of a surface, a user can manually guide the robot 200 along the surface to define a map of the surface. In such cases, the drive system 240 can be configured to provide power to the motors 242A and 242B to rotate the second wheels 250A and 250B and assist the user in directing the robot 200. In other cases, the drive system 240 need not provide power to the motors 242A and 242B to rotate the second wheels 250A and 250B. As the user directs (e.g., pushes and / or steers) the robot 200 along the surface, the robot 200 can be configured to sense, determine, calculate, define, and / or otherwise receive information associated with the area to be cleaned. For example, as a user directs (e.g., pushes and / or steers) robot 200 along a surface, laser transceiver 294 can emit a laser beam, receive at least a portion of the reflected laser beam, and sense the proximity of objects along and / or near the path of robot 200. Similarly, encoders, odometers, accelerometers, and / or other sensors included within and / or associated with drive system 240 can also be configured to sense, determine, calculate, define, and / or otherwise receive information associated with the output of motors 242A and / or 242B, the rotation of second wheels 250A and / or 250B, and / or the like. In some embodiments, any other suitable sensors, such as GPS sensors, proximity sensors, sound and / or radio wave sensors, cameras, etc., can also sense and / or determine information associated with robot 200 as a user directs robot 200 along a surface to be cleaned.
[0066] Thus, the I / O interface can receive data from the laser transceiver 294 and / or other sensors and transmit the associated data to the processor. In response, the processor can define a map, floor plan, layout, etc. associated with the surface to be cleaned. In some cases, based on the mapping and / or initialization of the robot 200, the electronic system 290 (e.g., a processor included therein) can define and / or determine a desired plan for cleaning the surface. For example, in some cases, the processor can execute a set of instructions or code associated with breaking down a map, layout, and / or graph of the surface along which the robot 200 may proceed into zones, paths, sub-paths, etc., based on efficiency, resource usage, desired attention areas (e.g., areas along surfaces that are more soiled than others), and / or the like. Once the cleaning plan is defined, the robot 200 can begin cleaning the surface in accordance with the cleaning plan. In this manner, electronics system 290 can be configured to control robot 200 in at least a semi-autonomous manner based, at least in part, on data associated with the operational state of robot 200, environmental conditions associated with the environment in which robot 200 is operating, user input, and / or the like.
[0067] In some cases, the processor may execute a set of instructions, code, and / or modules associated with at least temporarily maintaining the robot 200 within a predetermined distance from an object, such as a wall. More specifically, in some cases, the robot 200 may be configured to initially delineate the perimeter of the area to be cleaned by traveling substantially parallel to and / or adjacent to a set of walls that define the area. In such cases, the processor may receive signals from one or more sensors (e.g., such as those described above) and, based on the data contained therein, may define an operational state of at least the drive system 240. For example, in some cases, the laser transceiver 294 may emit a laser beam and then, based on the amount and / or quality of the laser beam reflected and / or refracted back to the laser transceiver 294, may sense, define, assign, and / or otherwise determine a value or equivalent representing the proximity of at least a portion of the robot 200 to the set of walls. Accordingly, the laser transceiver 294 may transmit a signal associated with the value to the processor (e.g., via an I / O interface). In response to receipt, the processor may execute a set of instructions, code, and / or modules (e.g., stored in memory) to, for example, determine a current and / or recent position of at least a portion of the robot 200 relative to a set of walls.
[0068] Similarly, the processor can receive, via the I / O interface, a set of signals associated with, for example, the operating state of drive system 240 from any suitable sensors, encoders, odometers, accelerometers, and / or the like. For example, the set of signals can be associated with the output of motors 242A or 242B and / or the rotational characteristics of second wheels 250A and 250B. In some embodiments, the set of signals can include data associated with the amount of power used by motors 242A and 242B, the rotational speed, rotational position, rotational acceleration, etc. of the output of motors 242A and 242B and / or second wheels 250A and 250B, and / or the like. Similarly, the processor can receive data associated with and / or from any other suitable portion of robot 200 within a very short period of time (e.g., substantially in parallel, within a few processor clock cycles, and / or the like). Thus, the processor may execute a set of instructions, code, and / or modules to determine a current (or recent) operating state of the robot 200, which may include, for example, the velocity and / or acceleration of the robot 200, the position of the robot 200 relative to a calculated and / or desired position, the operating state of the drive system 240 and / or cleaning assembly 265, and / or the like. Additionally, the processor may evaluate the operating state of the robot 200 relative to a predetermined and / or desired operating state of the robot 200, for example, according to a predetermined and / or calculated cleaning plan, and may define a new operating state for any suitable portion of the robot 200 (e.g., an operating state immediately following the current operating state) based on data associated with the evaluation.
[0069] By way of example, in some cases, the processor can receive signals from any suitable sensors, odometers, accelerometers, encoders, etc., and can use data contained within the signals to determine, for example, the velocity of the robot 200. In some embodiments, the processor can be configured to execute a set of instructions, code, and / or modules based, at least in part, on the determination of the velocity of the robot 200. For example, in some embodiments, the processor can be configured to control the drive system 240 based on the determination of the velocity of the robot 200 to maintain the velocity of the robot 200 within a predetermined range, for example, according to a stage of a cleaning operation. For example, in some embodiments, the robot 200 can be configured to move with a first velocity, for example, during initialization and / or mapping, with a second velocity, for example, during a wall-following stage, and with a third velocity, for example, during a turning stage. In some cases, the first velocity, the second velocity, and the third velocity can each be different. Thus, if the processor determines, based on data received from one or more sensors and / or based on a predetermined cleaning plan, that the robot 200 is, for example, beginning a wall-following phase of the cleaning plan, the processor can determine a current velocity of the robot 200 and define an updated operating state for the drive system 240 such that the drive system 240 moves the robot 200 with substantially a second velocity.
[0070] In some embodiments, the processor can be configured to control the operating state of at least a portion of the cleaning assembly 265 based, at least in part, on the speed of the robot 200. Specifically, in some embodiments, the processor can be configured to send a signal, for example, to a motor (not shown) to increase or decrease the rotational speed of the brush when the speed of the robot 200 decreases or increases, respectively. Similarly, the processor can be configured to send a signal to a pump or equivalent configured to transfer the flow of cleaning fluid to the cleaning assembly 265. Specifically, in some cases, the processor can send a signal to the pump to increase or decrease the flow rate therethrough when the speed of the robot 200 decreases or increases, respectively. Similarly, the processor can send a signal to the vacuum source 285 to control the flow rate therethrough based on the speed of the robot 200. In some cases, for example, by based on the rotational speed of the brush, the flow rate of the cleaning fluid, and / or the flow rate through the vacuum source, the amount of power for operating the robot 200 can be reduced, which in turn can increase the amount of time that the battery 210 can provide power.
[0071] In some instances, the processor may evaluate the distance between the robot 200 and a wall, for example, relative to a predetermined distance from the wall (discussed above). In instances where the processor determines that at least a portion of the robot 200 is beyond a predetermined distance from the wall (e.g., greater than 10 cm, greater than 5 cm, greater than 1 cm, and / or the like), the processor may define a subsequent action to be taken by the drive system 240 to direct the robot 200 toward the wall. More specifically, the electronics system 290 may send a signal to the motor 242A of the first drive mechanism 241A and a signal to the motor 242B of the second drive mechanism 241B, which may, for example, cause the motor 242A of the first drive mechanism 241A to rotate the second wheel 250A at a first rotational speed. Similarly, a signal sent to motor 242B of second drive mechanism 241B may cause motor 242B to rotate second wheel 250B at a second rotational speed that is different from the first rotational speed. Thus, if a wall is adjacent to the right side of robot 200, the first rotational speed may exceed the second rotational speed, which in turn steers robot 240 toward the wall. In this manner, electronic system 290 may perform a similar process any number of times to actively control the operational state of robot 200. Similarly, a processor may be configured to execute a set of instructions or code associated with determining the current operational state of any suitable portion of robot 200, and in response, execute a set of instructions or code for defining an updated operational state of that portion of robot 200 or a different portion of robot 200 based, at least in part, on a predetermined cleaning schedule or the like.
[0072] In some cases, once the robot 200 has cleaned and / or progressed along the perimeter of the surface being cleaned, the electronic device 290 can be configured to update a state associated with keeping the robot 200 within a predetermined distance from a wall. For example, in some cases, the electronic device 290 (e.g., a processor) can update the predetermined distance based on, for example, the width of the robot 200 and / or the cleaning assembly 265. That is, the processor can update the predetermined distance from the wall so that the robot 200 progresses at a distance from the wall approximately equal to the width of the cleaning assembly 265. In other words, the processor can update the predetermined distance from the wall so that the robot 200 progresses in concentric paths. In some cases, such concentric paths can overlap to ensure that no area of the surface is missed. In other cases, once the robot 200 has cleaned and / or progressed along the perimeter of the surface, the processor can execute sets of instructions and / or code associated with different stages of a cleaning plan, for example, not based on the proximity of the robot 200 to a wall. In other words, after completing the processes and / or equivalents associated with a first stage of the cleaning plan (e.g., the wall-following stage), the processor may execute a set of processes associated with a second stage of the cleaning plan, which may be independent of the wall-following stage.
[0073] While electronic system 290 is described above to perform one or more processes, e.g., to keep robot 200 within a predetermined distance from a wall, in other embodiments, electronic system 290 can be configured to perform one or more processes, e.g., when robot 200 encounters and / or comes into contact with an object. For example, in some cases, the object may be within or on a path along which robot 200 is traveling, and drive system 240 can be configured to move robot 200 along the path until, e.g., cleaning assembly 265 and / or any other suitable portion of robot 200 is placed in contact with or brought within a predetermined distance of the object. Thus, laser transceiver 294 and / or any other suitable sensor (as described above) can sense contact and / or proximity with the object and send a signal associated therewith to the processor.
[0074] In response, the processor may implement and / or execute a set of instructions associated with, for example, stopping the rotation of the output of motors 242A and / or 242B of drive system 240. Accordingly, robot 200 may be configured to stop when a portion of robot 200 contacts and / or comes within a predetermined proximity of an object. In some instances, robot 200 may be configured to pause for a predetermined period of time, at the end of which the processor may receive a signal from laser transmitter / receiver 294 and / or other suitable sensor associated with the proximity of the object at the end of the predetermined period of time. For example, if the object moves from the path and is no longer an obstacle, the processor may be configured to execute a set of instructions to resume operation of robot 200 according to the defined cleaning path. However, if the object is not moving, the processor may determine that the object is stationary, and in response, the processor may execute a set of instructions or code associated with navigating around the object. For example, the processor may execute a set of instructions, code, and / or modules associated with updating or remapping a surface and defining an updated cleaning path and / or plan. The processor may then execute the set of instructions, code, and / or modules to initiate an updated cleaning operation based on the updated cleaning path and / or plan. For example, the processor may send a signal to motors 242A and / or 242B that may cause motors 242A and / or 242B to rotate second wheels 250A and / or 250B, respectively, in a direction such that cleaning assembly 265 and / or any other portion of robot 200 are moved away from the object. Once beyond a predetermined distance from the object, the processor may execute a set of instructions, code, and / or modules that may cause motors 242A and / or 242B to move robot 200 according to the updated cleaning path and / or plan.Thus, the robot 200 can be configured to adjust and / or alter the path along which the robot 200 is traveling in response to contacting and / or coming within a predetermined distance of an object.
[0075] Although not shown in FIGS. 2-8 , in some embodiments, robot 200 can include one or more cameras, such as those described herein, that can be configured to capture images and / or video of an object and can transmit data associated with the images and / or video to a processor. In response to receipt, the processor can analyze the images and / or video and execute a set of instructions, code, and / or modules associated with determining and / or recognizing the object. For example, the processor can be configured to determine whether the object is stationary, movable, fragile, and / or the like, and, based on the determination, can define one or more subsequent actions for a portion of robot 200. For example, in some instances, the processor can determine that the object is a ball or the like that is movable and too large to be entrained within cleaning assembly 265. Based on this determination, the processor can send signals to motors 242A and / or 242B to continue moving robot 200 along the cleaning path. Conversely, if the processor determines that the object is not movable, such as a newly installed structure or the like that is not included in the original mapping of the surface, the processor can send signals to motors 242A and 242B to navigate around the object and return to the cleaning path once a predetermined distance has been exceeded (as described above). Thus, robot 200 can be adaptive and configured to update its cleaning plan based on changes in the surface to be cleaned and / or the environment in which robot 200 is located. In some embodiments, the updated cleaning plan can be based on mapping the surface and defining an updated path along which robot 200 will travel. The updated path can, for example, be a path that is most likely to avoid the object and / or any other new or unmapped objects or changes.
[0076] After executing a cleaning plan or the like, electronics system 290 can be configured to evaluate the area of the surface cleaned and the desired area of the surface to be cleaned (e.g., as defined by the cleaning plan and / or updated cleaning plan). If electronics system 290 determines that a portion of the surface was not cleaned, robot 200 can be configured to move to that portion of the surface and clean it. Similarly, electronics system 290 (e.g., a processor) can be configured to evaluate and / or record moisture and / or cleaning fluid that was not collected (e.g., siphoned) during the cleaning operation. If moisture and / or cleaning fluid is found on the surface, robot 200 can be configured to move and clean (e.g., siphone, vacuum, squeegee, etc.) the moisture and / or cleaning fluid. Although described above as occurring after executing a cleaning plan, in other embodiments, electronics system 290 can control robot 200 during the cleaning operation to clean missed surface areas and / or remove excess moisture from the surface. In such cases, the electronics system 290 can be configured to redefine the cleaning path and / or otherwise remap the surface in response to deviations from the cleaning plan.
[0077] As mentioned above, in some cases, the I / O interface can be configured to transmit data via wired and / or wireless networks to a remote electronic device (e.g., an electronic device external to the robot 200), such as a handheld controller, a mobile device, a smartphone, a tablet, a laptop, a PC, and / or the like (not shown in FIGS. 2-8 ). For example, the remote electronic device can include at least a processor, a memory, and a display and can launch, for example, a personal computer application, a mobile application, a web page, and / or the like. In this manner, a user can operate the remote electronic device such that data associated with the robot 200 is graphically represented on the display of the remote electronic device. More specifically, in some cases, a user can operate the remote electronic device to, for example, open a personal computer application or a mobile application associated with the robot 200. In some cases, the application can be configured to send signals to and / or receive signals from the electronics system 290 via wireless networks and the Internet. In some embodiments, the application can be a web browser or the like.
[0078] In some cases, the data can be associated with the status of the robot 200 and / or reports regarding the cleaning plan, such as the amount of life of the battery 291, the fill volume of cleaning fluid, the fill volume of a fluid recovery volume, the fill volume of, for example, the debris volume 212, the speed of the robot 200, the percentage of completion of the cleaning plan, the relative position of the robot 200, and / or the like. In some cases, the remote electronic device can be configured to present the data, for example, as a graph, chart, report, interactive image, video, live stream, and / or any other suitable manner. In some cases, the electronics system 290 can send a signal associated with an error or the like to the remote electronic device, which can be presented on a display of the remote electronic device in the form of an alert or the like. Thus, a user can remotely monitor the progress of the robot 200 in substantially real time via the remote electronic device, and based on the monitoring, the user can, for example, operate the remote electronic device to remotely control the robot 200.
[0079] For example, if the robot 200 becomes stuck, a user can control the robot 200 via a user interface on a remote electronic device to remotely move the robot 200 to a non-stuck position. In some cases, data associated with remote control of the robot 200 received by the electronics system 290 can have a priority and / or other indication such that the processor implements one or more processes based on the data, rather than the cleaning plan. That is, the user can remotely control the robot 200, which can in turn override the cleaning plan. Once the processor executes and / or performs the processes associated with the remote control, the processor can execute a set of processes associated with, for example, remapping and / or redefining the cleaning plan. In some embodiments, the remote electronic device can send a signal to the electronics system 290 associated with an instruction to power down and / or transition to an “off” operating state (e.g., the remote electronic device can be, for example, a remote shut-off device). Additionally, although the robot 200 is described above as being manually initialized by a user directing the robot 200 around a surface, in some embodiments, the remote electronic device may include data representing a map or layout of the surface to be cleaned, which may be graphically represented on a display of the remote electronic device to allow a user to virtually initialize the robot 200.
[0080] 9-17 , at least a portion of a device 300, such as a semi-automated robot, is illustrated, according to one embodiment. The portion of device 300 includes at least a frame 310, a drive system 340, and a cleaning assembly 365. Device 300 can be included within, for example, a cleaning robot used to clean (e.g., vacuum, scrub, disinfect, etc.) any suitable surface area, such as a floor of a home, commercial building, warehouse, etc., as described in detail above. For example, device 300 can be included within robot 200 described above with reference to FIGS. 2-8 . More specifically, a portion of robot 200 can be adapted to receive device 300, such that support portions of frame 220, drive system 240, and cleaning assembly 265 are replaced by frame 310, drive system 340, and cleaning assembly 365, respectively. Accordingly, other portions of device 300 will not be described in further detail herein.
[0081] The frame 310 of the device 300 (also referred to herein as the “robot”) can be of any suitable shape, size, and / or configuration. For example, as described above with reference to the robot 200, the frame 310 can include a storage portion (not shown in FIGS. 9-17 ) and a support portion 320. The storage portion can be substantially similar to the storage portion 211 of the frame 210 in FIGS. 2-5 and, therefore, will not be described in further detail herein. The support portion 320 can be of any suitable shape, size, and / or configuration. For example, the support portion 320 can include any suitable components, parts, mechanisms, linkages, and / or the like configured to support, for example, the drive system 340 and / or the cleaning assembly 365. In this embodiment, the support portion 320 includes at least a top plate 321 defining an opening 322 and a bottom plate 323 defining an opening 324, which can be coupled to house at least the drive system 340. 9-17, the support portion 320 of the frame 310 may include any suitable components, parts, features, connections, and / or the like configured to couple the cleaning assembly 365 to the frame 310. For example, in some embodiments, the frame 310 may include a cleaning assembly mount, such as the cleaning assembly mount 227 illustrated in FIG.
[0082] As described above, the drive system 340 of the robot 300 is coupled to and / or otherwise supported by the support portion 320 of the frame 310. The drive system 340 can be any suitable system, mechanism, machine, assembly, etc. configured to move the robot 300 along a surface. For example, in this embodiment, the drive system 340 can include a single steerable wheel assembly and any suitable number of passive wheels (as described above). As shown in FIGS. 9-11 , the drive system 340 is rotatably coupled to the frame 110 such that a portion of the drive system 340 is aligned with an opening 322 defined by the top plate 320 and such that the wheels 350 of the drive system 340 extend through an opening 324 defined by the bottom plate 323. In this manner, one or more motors can be configured to rotate the wheels and / or at least a portion of the drive system 340 to move the robot 300 along a surface.
[0083] As shown in FIGS. 11-15 , drive system 340 includes motor 342, a set of pulleys 346, a set of bearings 347, a wheel 350, a support structure 352, and a rotating subassembly 355. Motor 342 can be any suitable motor configured to rotate output 343 (see, e.g., FIG. 13 ). Support structure 352 is configured to couple to and / or support motor 343, set of pulleys 346, set of bearings 347, and rotating subassembly 355. For example, support structure 352 can be a metal plate, a metal alloy plate, a thermoplastic plate, and / or the like, which can be configured to provide structural support and / or rigidity to drive system 340. Additionally, support structure 352 can define a number of openings configured to receive, for example, a portion of motor 342 and / or a portion of one or more drive shafts (not shown in FIGS. 11-15 ), as described in further detail herein.
[0084] The rotation subassembly 355 may be fixedly coupled to the support structure 352 of the drive system 340 and fixedly coupled to the bottom plate 323 of the frame 310. The rotation subassembly 355 may include any suitable number of plates, rings, components, etc. that are configured for relative movement between one or more portions thereof, thereby enabling the drive system 340 to rotate relative to the frame 310 and steer the robot 300. For example, as shown in FIG. 13 , the rotation subassembly 355 includes a mounting ring 356, a support plate 359, an actuator plate 361, and a coupling ring 364. The mounting ring 356 is configured to be fixedly coupled to the bottom plate 323 of the frame 310 (e.g., via any suitable number of mechanical fasteners, welds, and / or the like). As shown, in this embodiment, the mounting ring 356 is a generally annular ring having a recessed surface 357 and defining an opening 358.
[0085] The support plate 359 can be of any suitable shape, size, and / or configuration. For example, as shown in FIG. 13 , the support plate 359 is a plate having a generally circular cross-sectional shape and defining an opening 360. The opening 360 is configured to receive a portion of the support structure 352 and a portion of the wheel 350, as described in further detail herein. In some embodiments, the configuration of the support plate 359 can be based on and / or associated with at least a portion of the mounting ring 356. For example, at least a portion of the support plate 359 can be rotatably disposed within the mounting ring 356. More specifically, although not shown in FIGS. 11-15 , the support plate 359 can include and / or form a flange that can contact a recessed surface 357 of the mounting ring 356, while a portion of the support plate 359 extends through an opening 358 defined by the mounting ring 356. In some embodiments, the mounting ring 356 and / or support plate 359 may include a surface finish, coating, lubricant, and / or the like that may reduce the amount of friction associated with rotation of the support plate 359 along the surface of the mounting ring 356 that defines the recess 357. For example, in some embodiments, the mounting ring 356 may include one or more grease nipples or the like that may receive a flow of grease that may flow through one or more channels to the surface that defines the recess 357. Thus, the support plate 359 may be rotated relative to the mounting ring 356 with a relatively low amount of friction.
[0086] Actuator plate 361 can be of any suitable shape, size, and / or configuration. For example, in the present embodiment, actuator plate 361 has an engagement portion 363 and defines an opening 362. Opening 362 is configured to receive a portion of support structure 352 and a portion of wheel 350, as described in further detail herein. As shown in FIGS. 12 and 13 , actuator plate 361 can be coupled to a surface of support plate 359 and to a portion of support structure 352, thereby coupling support structure 352 to support plate 359. Additionally, as shown in FIG. 13 , coupling ring 364 can be disposed on a side of mounting ring 356 opposite the side on which actuator plate 361 is disposed. In some embodiments, actuator plate 361 and coupling ring 364 can be arranged such that any suitable number of fasteners can extend therebetween and thus couple actuator plate 361 to coupling ring 364. In such an embodiment, for example, the actuator plate 361 and the coupling ring 364 can be configured to restrict movement of the support plate 359 to an axial direction (e.g., the direction of the axis about which the support plate 359 rotates). In other words, the actuator plate 361 and the coupling ring 364 can collectively couple the support plate 359 to the mounting ring 356 while allowing the support plate 359 to rotate relative to the mounting ring 356.
[0087] 9-17 , in some embodiments, the robot 300 may include a steering actuator or equivalent configured to engage the engagement portion 363 of the actuator plate 361. For example, in some cases, the steering actuator may be actuated (e.g., in response to a signal received from an electronics system, such as the electronics system 290 described in detail above) to move the engagement portion 363 from a first position to a second position. More specifically, when the actuator plate 361 is coupled to the support plate 359, actuation of the steering actuator may cause the engagement portion 363 to be moved from the first position to the second position, which in turn may cause the support plate 359 to be rotated relative to the mounting ring 356.
[0088] As mentioned above, drive system 340 includes motor 342, a set of pulleys 346, a set of bearings 347, and wheel 350. Wheel 350 can be any suitable wheel and includes and / or is coupled to wheel pulley 351, as described in more detail herein. For example, as shown in FIGS. 14 and 15 , wheel 350 can be coupled to a portion of support structure 352 that extends through openings 358, 360, and 362 in mounting ring 356, support plate 359, and actuator plate 361, respectively. For example, in some embodiments, wheel 350 can be configured to rotate about an axle or the like (not shown) that is coupled to and / or suspended from support structure 352. Wheel 350 can thus be rotated about the axle, as described in more detail herein, to, for example, move robot 300 along a surface.
[0089] Motor 342 of drive system 340 is coupled to a support structure and maintained in a substantially fixed position relative thereto. Motor 342 includes an output 343 to which output pulley 344 is coupled, as shown in FIGS. 13-15 . Each bearing included in set of bearings 347 is coupled to a portion of support structure 352. In this manner, set of bearings 347 can be configured to support any number of drive shafts or the like (not shown in FIGS. 9-17 ), to which at least one associated pulley from set of pulleys 347 is coupled. For example, in this embodiment, drive system 340 includes first bearing 347A and second bearing 347B configured to support a first drive shaft (not shown), and third bearing 347C and fourth bearing 347D configured to support a second drive shaft (not shown). Further, the drive system 340 includes a first pulley 346A coupled to a first end of the first drive shaft, a second pulley 346B coupled to a second end of the first drive shaft, a third pulley 346C coupled to a first end of the second drive shaft, and a fourth pulley 347D coupled to a second end of the second drive shaft.
[0090] 11-15, drive system 340 includes a set of belts coupled to the pulleys to form a pulley system. For example, such a pulley system can have a belt operatively coupling output pulley 344 to first pulley 346A, a belt operatively coupling second pulley 346B to third pulley 346C, and a belt operatively coupling fourth pulley 346D to wheel pulley 351. Thus, when first pulley 346A and second pulley 346B are coupled to the same drive shaft, and third pulley 346C and fourth pulley 346D, motor 342 can rotate output 343 and output pulley 344, which in turn causes wheel 350 to rotate. In some embodiments, the size, number, position, and / or arrangement of the set of pulleys 346 can be such that the overall pulley ratio between the output pulley 344 and the wheel pulley 351 is equal to a predetermined value. Accordingly, the drive system 340 can be modified and / or otherwise installed in a desired configuration, for example, to reduce the amount of power and / or torque associated with the motor 342 to rotate the wheel 350, increase the amount of torque associated with the wheel 350, define a maximum rotational speed for the wheel 350, and / or the like.
[0091] As described above with reference to robot 200, robot 300 can include an electronics system (not shown) configured to send signals to and / or receive signals from the drive system that effect rotation of wheels 350 and / or rotation subassembly 355. Thus, drive system 340 can move robot 300 along a surface. In some embodiments, the electronics system can receive signals associated with the operating state of drive system 340 based on data associated with user input, sensors, control devices, encoders, cameras, etc., as described in detail above. In some cases, the arrangement of drive system 340 (e.g., using wheels 350 to propel and steer robot 300) can result in a reduced turning radius, for example, compared to a robot using two wheels (e.g., an arrangement similar to a front-wheel drive vehicle) that receive power and steer the robot. In some cases, such an arrangement may, for example, cause the cleaning assembly 365 to get into corners and / or other tight spaces (e.g., within 5 centimeters of a wall or corner) that may otherwise result in the robot 300 becoming stuck and / or being otherwise lost. Accordingly, such control methods, control systems, feedback systems, etc. may function similarly to those described above, and therefore will not be described in further detail herein.
[0092] As shown in FIGS. 16 and 17 , the robot 300 includes a cleaning assembly 365. The cleaning assembly 365 included within the robot 300 can be of any suitable shape, size, and / or configuration. The cleaning assembly 365 is coupled to and / or otherwise supported by a support portion 320 of the frame 310. For example, as described above with reference to the robot 200, the frame 310 can include a cleaning assembly mount (not shown in FIGS. 9-17 ) that can be coupled to a mounting portion of the cleaning assembly (not shown in FIGS. 9-17 ). Thus, the arrangement of the cleaning assembly 365 and the frame 310 can allow the cleaning assembly 365 to be moved relative to the frame 310 (e.g., via an actuator and / or any suitable linkage). For example, in some embodiments, the cleaning assembly 365 can be moved closer to or away from the frame 310, which in turn can move the cleaning assembly 365 away from or closer to, respectively, a surface along which the robot 300 moves.
[0093] The cleaning assembly 365 includes a frame 366, a cover 367, a shroud 378, a first brush 369, a second brush 371, and a motor 374. The cover 367 is coupled to the frame 366 and configured to cover, house, and / or enclose at least a portion of the cleaning assembly 365. More specifically, the cover 367 is coupled to the frame 366 and may define an interior volume 368 that may house at least a portion of the motor 374, the first brush 369, and the second brush 371. In some embodiments, at least a portion of the interior volume 368 may define a suction volume or the like, for example, within which a negative pressure may be created to draw debris into the cleaning assembly 365 and ultimately into the debris volume or the like. For example, as described above, the robot 300 may include a vacuum pump and / or motor that may be configured to create a negative pressure differential that is in communication with the internal volume 368 and that may be operable to draw debris into the cleaning assembly 365.
[0094] The motor 374 of the cleaning assembly 365 can be, for example, any suitable motor configured to rotate the first brush 369 and the second brush 371. More specifically, the motor 374 includes an output 375 that can be operably coupled via a belt or chain (not shown in FIGS. 16 and 17 ) to a first pulley 370 fixedly coupled to the first brush 369, a second pulley 372 fixedly coupled to the second brush 371, and a tensioner pulley 376. Thus, the motor 374 can rotate the output pulley 375, which in turn rotates the first pulley 370, the second pulley 372, and the tensioner pulley 376. Thus, with first pulley 370 fixedly coupled to first brush 369 and second pulley 372 fixedly coupled to second brush 371, motor 374 can be configured to rotate first brush 369 and second brush 371. Additionally, as shown in FIG. 16 , shroud 378 can be configured to cover and / or house at least a portion of output pulley 375, first pulley 370, second pulley 372, and tensioner pulley 376.
[0095] In some embodiments, the cleaning assembly 365 can be arranged such that the motor 374 rotates the first brush 369 and the second brush 371 in substantially the same rotational direction. In other embodiments, the motor 374 can be configured to rotate the first brush 369 in a first rotational direction and the second brush 371 in a second rotational direction opposite the first rotational direction. In yet other embodiments, the cleaning assembly 365 can include a first motor configured to rotate the first brush 369 and a second motor configured to rotate the second brush 371 independently of the first brush 369. In this manner, the first brush 369 and the second brush 371 can be rotated, e.g., to collect and / or scrub surfaces and entrain dust and / or debris within the interior volume 368. Additionally, negative pressure generated by a vacuum source or equivalent (as described above) can draw dust and / or debris into a containment volume or equivalent (e.g., similar to the debris volume 212 defined by the containment portion 211 of the frame 210 described above with reference to FIG. 4).
[0096] At least a portion of the cleaning assembly 365 can be in communication with an electronics system (not shown) and can be configured to send signals to and / or receive signals from the electronics system associated with operation of the cleaning assembly 365. For example, in some cases, the electronics system can send signals to the cleaning assembly 365 and / or actuators or the like that can be operable in moving the cleaning assembly 365 relative to the frame 310. In some cases, the electronics system can send signals operable in transitioning the pump and / or motor 374 between an “off” and an “on” operating state. For example, in some cases, the electronics system can send signals operable in transitioning the motor 374 from an “off” to an “on” operating state, which can in turn be operable in initiating rotation of the first brush 369 and the second brush 371, respectively. Additionally, in some cases, the electronics system can be configured to control and / or modulate the amount of pressure applied by the cleaning element and / or cleaning head on a surface (e.g., based on floor type, type and / or amount of debris, and / or the like).
[0097] As described in detail above, the robot 300 can move along a surface in at least a semi-autonomous manner as the cleaning assembly 365 cleans the surface. In some embodiments, the arrangement of the drive system 340, cleaning assembly 365, and electronics system (not shown in FIGS. 9-17 ) can enable the robot 300 to maneuver the cleaning assembly 365 into relatively tight spaces and / or corners without getting stuck. In some cases, the drive system 340 can be configured to move the robot 300 along a surface and position the cleaning assembly 365 within a relatively small distance (e.g., within 5 centimeters of an object or less) of walls, corners, and / or other obstacles. Thus, the robot 300 can be configured to clean a surface in substantially the same manner as described in detail above with reference to the robot 200.
[0098] 18-28 , a device 400, such as a robot configured to clean a surface, is illustrated, according to one embodiment. The device 400 (also referred to herein as a “cleaning robot” or “robot”) includes at least a frame 410, a drive system 440, an electronics system 490, and a cleaning assembly 465. The cleaning robot 400 can be used to clean (e.g., vacuum, scrub, disinfect, etc.) any suitable surface area, such as, for example, floors of a home, commercial building, warehouse, etc. The robot 400 can be of any suitable shape, size, or configuration and can include one or more systems, mechanisms, assemblies, or subassemblies that can perform any suitable function associated with, for example, navigating a surface, mapping a surface, cleaning a surface, and / or the like.
[0099] Frame 410 of robot 400 can be of any suitable shape, size, and / or configuration. For example, in some embodiments, frame 410 can include a set of components, or the like, coupled to form a support structure configured to support drive system 440, cleaning assembly 465, and electronics system 490. More specifically, in this embodiment, frame 410 includes storage portion 411 (see, e.g., FIGS. 18-20 ) and support portion 420 (see, e.g., FIGS. 20-24 ). As described above with reference to frame 110, frame 410 can include any suitable components, such as, for example, sheets, tubes, rods, bars, etc. In some embodiments, such components can be formed from metals or metal alloys, such as aluminum, steel, and / or the like. In other embodiments, such components may be formed from thermoplastics and / or polymers such as nylon, polyester, polycarbonate, polyacrylate, ethylene vinyl acetate, polyurethane, polystyrene, polyvinyl chloride (PVC), polyvinyl fluoride, poly(vinylimidazole), and / or hybrids and copolymers thereof. In some embodiments, frame 410 may include a body or the like configured to encapsulate and / or support at least a portion of robot 400.
[0100] The storage portion 411 of the frame 410 can include a set of components configured to define a debris cavity 412 and an electronics system cavity 416 (see, e.g., FIG. 20 ). In some embodiments, the storage portion 411 of the frame 410 can be, for example, a body of the robot 400 that is supported by the support portion 420 of the frame 410. That is, in some embodiments, the robot 400 can include a body or the like that can define the debris cavity 412 and / or the electronics system cavity 416.
[0101] The debris cavity 412 can be of any suitable shape, size, or configuration. While not shown, the frame 410 and / or body of the robot 400 can define an opening configured to place the debris cavity 412 in fluid communication with the cleaning assembly 465. The cleaning assembly 465 can thus transfer waste, debris, fluids, and / or the like from a surface over which the robot 400 is moving to the debris cavity 412, as described in further detail herein. Additionally, as shown in FIG. 20 , the debris cavity 412 can house and / or accommodate a vacuum source 485 that can be configured to generate a negative pressure differential within the debris cavity 412, which in turn can result in a suction force being applied on and / or within the cleaning assembly 465. For example, vacuum source 485 can be a vacuum pump (e.g., a piston-driven pump, a rotary vane pump, a rotary screw pump, a diaphragm pump, and / or the like) that can draw a flow of fluid (e.g., a gas such as air and / or a liquid) therethrough. Thus, vacuum source 485 can draw waste, debris, fluid, dirt, and / or the like from cleaning assembly 465 and into debris cavity 412, as described in further detail herein. While vacuum source 485 is shown in FIG. 20 as being disposed within debris cavity 412, in other embodiments, vacuum source 485 can be disposed within, for example, a vacuum cavity or the like, as described above with reference to robot 200.
[0102] The electronics system cavity 416 is configured to receive at least a portion of the electronics system 490. More specifically, the storage portion 411 of the frame 410 may include a wall 417 configured to physically and fluidly isolate the debris cavity 412 from the electronics system cavity 416. In this manner, electronic components may be disposed within the electronics system volume 416 and not exposed to the volume of debris transported into the debris cavity 412. In some embodiments, the electronics system cavity 416 may be large enough to house at least a portion of the electronics system 490, such as, for example, a printed circuit board (PCB), a processor, memory, a radio, power distribution components, a battery, and / or the like (not shown in FIGS. 18-28 ). Although not shown, the storage portion 411 may include one or more removable portions that may be moved relative to the frame 410 to provide access to the debris cavity 412 and / or the electronics storage volume 416.
[0103] 18 and 19 , the storage portion 411 of the frame 410 (and / or the body coupled thereto) includes a cover 418 that covers and / or encloses the electronics system cavity 416 and / or the debris cavity 412. The cover 418 can be configured to store and / or support one or more electronic components included within the electronics system 490. For example, the cover 418 can be configured to support one or more cameras 493 (e.g., see FIG. 18 ) and user interfaces 492 (e.g., see FIG. 19 ) of the electronics system 490, as described in further detail herein. In some embodiments, the cover 418 can be movable relative to the storage portion 411 of the frame 410 to allow access to the debris cavity 412 and / or the electronics system volume 416. For example, in some embodiments, the cover 418 may be coupled to the storage portion 411 of the frame 410 and / or a body coupled thereto via one or more hinges or the like, which may allow the cover 418 to be pivoted relative to the frame 410 to provide access to the debris cavity 412 and / or the electronics system cavity 416.
[0104] 20-24 , support portion 420 includes any suitable components, parts, mechanisms, linkages, and / or the like configured to support, for example, storage portion 411 of frame 410, drive system 440, and / or cleaning assembly 465. In this embodiment, support portion 420 includes a top plate 421 and a support structure 425. Top plate 421 is coupled to storage portion 411 of frame 410 and can couple support portion 420 thereto. Additionally, top plate 421 can be configured to support and / or couple to laser transceiver 494 and / or any other suitable sensors and / or transceivers included within electronics system 490 (see, e.g., FIG. 21 ).
[0105] The support structure 425 may include any suitable components configured to support at least a portion of the drive system 440 and / or to couple any suitable motors, actuators, pumps, pulleys, etc. to the support portion 420 of the frame 410. For example, the support structure 425 may be coupled to a mounting portion 479 of the cleaning assembly 465, coupling the cleaning assembly 465 to the support portion 420 of the frame 410, as described in further detail herein. Additionally, the support portion 420 includes a first drive mechanism mount 452A configured to support a first drive mechanism 441A of the drive system 440, a second drive mechanism mount 452B configured to support a second drive mechanism 441B of the drive system 440, and a third drive mechanism mount 452 configured to support a third drive mechanism 441C of the drive system 440.
[0106] 21-25 , drive system 440 can be any suitable system, mechanism, machine, assembly, etc. coupled to support portion 420 and configured to move robot 400 along a surface. For example, in this embodiment, drive system 440 includes first drive mechanism 441A, second drive mechanism 441B, and third drive mechanism 441C. As previously described, first drive mechanism 441A is coupled to first drive mechanism mount 452A on support portion 420 of frame 410, second drive mechanism 441B is coupled to second drive mechanism mount 452B on support portion 420, and third drive mechanism 441C is coupled to third drive mechanism mount 452C. In this embodiment, first drive mechanism 441A, second drive mechanism 441B, and third drive mechanism 441C are substantially similar in form and function. Thus, for example, a detailed discussion of first drive mechanism 441A also applies to second drive mechanism 441B and third drive mechanism 441C, and therefore second drive mechanism 441B and third drive mechanism 441C will not be described in further detail herein. Drive mechanisms 441A, 441B, and 441C may differ by coupling to drive mechanism mounts 452A, 452B, and 452C, respectively, at different locations, and allowing components of drive mechanisms 441A, 441B, and / or 441C to extend from drive mechanism mounts 452A, 452B, and 452C, respectively, without interfering with components from the other drive mechanisms, for example, as shown in Figures 23 and 24.
[0107] As shown in FIGS. 22-24 , the support portion 420 of the frame 410 and the drive system 440 are arranged such that the drive mechanisms 441A, 441B, and 441C are disposed at a desired angle Z from one another. More specifically, the frame 410 and the drive system 440 can be arranged such that the wheel 448A of the first drive mechanism 441A rotates about an axis A1 that is disposed at angle Z relative to the axis A2 about which the wheel 448B of the second drive mechanism 441B rotates, and relative to the axis A3 about which the wheel 448C of the third drive mechanism 441C rotates. Similarly, the axis A2 associated with the wheel 448B is disposed at angle Z relative to the axis A3 associated with the wheel A3 (see, e.g., FIG. 24 ). Furthermore, in this embodiment, the drive system 440 is arranged such that the angle Z is approximately 120 degrees. In other embodiments, angle Z can be any other suitable angle.
[0108] As shown in FIG. 25 , first drive mechanism 441A includes a motor 442A, an output pulley 443A, a drive shaft 445A, a drive pulley 446A, a set of bearings 447A, and a wheel 448A. The motor 442A of first drive mechanism 441A is fixedly coupled to first drive mechanism mount 452A and, therefore, fixedly coupled to support portion 420 of frame 410. Motor 442A includes and / or is otherwise coupled to output pulley 443A. For example, motor 442A may include an output shaft or equivalent to which output pulley 443A is coupled. Drive pulley 446A is fixedly coupled to drive shaft 445A. As shown in FIGS. 24 and 25 , drive pulley 446A is operably coupled to output pulley 443A via belt 444A. Thus, drive pulley 446A is configured to rotate in response to motor 442A rotating output pulley 443A.
[0109] The set of bearings 447A is configured to support the drive shaft 445A and rotatably couple the drive shaft 445A to the first drive mechanism mount 452A. More specifically, the set of bearings 447A includes a second bearing 447A fixedly coupled to the first drive mechanism mount 452A and configured to receive a first end portion of the drive shaft 445A, and a second bearing 447A coupled to the wheel 448A (e.g., via a wheel hub or equivalent not shown in FIGS. 18-28 ) and configured to receive a second end portion of the drive shaft 445A. Thus, the set of bearings 447A can be configured to support the drive shaft 445A and allow the drive shaft 445A to rotate relative to the first drive mechanism mount 452A. Conversely, the drive shaft 445A and / or the second bearing 447A can be coupled to the wheel 448A such that rotation of the drive shaft 445A results in an associated rotation of the wheel 448A. In this manner, motor 442A can receive a flow of electrical power that can cause motor 442A to rotate output pulley 443A, which in turn can result in the associated rotation of wheel 448A.
[0110] Although not shown in FIGS. 18-28 , the wheel 448A included within the first drive mechanism 441A may be substantially similar in form and function to the first wheel 248, with reference to FIG. 8 . Specifically, the wheel 448A of the first drive mechanism 441A may be, for example, an omni-wheel, a Mecanum wheel, and / or the like, which defines a circumference and includes a set of rollers (not shown in FIGS. 18-28 ) rotatably disposed along the circumference. In this manner, as the wheel 448A is rotated about its axis (e.g., associated with the drive shaft 445A), each roller disposed along the circumference of the wheel 448A may be configured to rotate about its associated axis, which may be at any suitable angle (e.g., about 45 degrees, about 90 degrees, about 135 degrees, and / or any other suitable angle) relative to the axis of rotation of the wheel 448A.
[0111] As described above, the second drive mechanism 441B and the third drive mechanism 441C can be substantially similar in form and function to the first drive mechanism 441A. As such, the motor 442B of the second drive mechanism 441B can be configured to rotate the wheel 448B, and the motor 442C of the third drive mechanism 441C can be configured to rotate the wheel 448C. The wheels 448B and 448C can be omni-wheels, Mecanum wheels, and / or the like, as described above with reference to the wheel 448A of the first drive mechanism 441A. Furthermore, as described above, the first drive mechanism 441A, the second drive mechanism 441B, and the third drive mechanism 441C can be positioned, for example, at an angle of approximately 120 degrees from one another. In this manner, electronics system 490 can send signals to drive mechanisms 441A, 441B, and 441C to drive robot 400 along a surface in any suitable direction.
[0112] As an example, in some cases, electronics system 490 can execute a set of processes and / or the like to drive robot 400 in a forward direction (e.g., perpendicular to wheel 448A of first drive mechanism 441A (see, e.g., FIG. 24 )). In such cases, second drive mechanism 441B and third drive mechanism 441C can receive substantially equivalent signals and / or substantially equal amounts of power from electronics system 490, and in response, motors 442B and 442C can rotate wheels 448B and 448C, respectively, with substantially the same speed. Conversely, in such cases, motor 442A of first drive mechanism 441A does not receive signals and / or power from electronics system 490. Thus, the force resulting from the rotation of wheel 448B about its axis A2 and the rotation of wheel 448C about its axis A3 at substantially the same speed results in a force in the direction of axis A1 associated with first drive mechanism 441A. Furthermore, if each of wheels 448A, 448B, and 448C is an omni-wheel, a mecanum wheel, and / or the like, the resulting force can be such that the roller of each of wheels 448A, 448B, and 448C rotates about its associated axis. In this manner, drive system 400 can move robot 400 in a forward direction (e.g., parallel to and / or in the direction of axis A1 associated with first drive mechanism 441A).
[0113] In other cases, electronics system 490 can execute a set of processes and / or the like to drive robot 400 in a direction other than along axis A1. In such cases, first drive mechanism 441A, second drive mechanism 441B, and third drive mechanism 441C can each receive input from electronics system 490 that can be, for example, specific to that drive mechanism 441A, 441B, and / or 441C (e.g., signals indicating different commands for each drive mechanism 441A, 441B, or 441C and / or different amounts of power for each drive mechanism 441A, 441B, or 441C). In response, the first drive mechanism 441A can rotate the wheel 448A about its axis A1 with a desired rotational speed, the second drive mechanism 441B can rotate the wheel 448B about its axis A2 with a desired rotational speed, and the third drive mechanism 441C can rotate the wheel 448B about its axis A3 with a desired rotational speed. Thus, the resulting force associated with the rotation of the wheels 448A, 448B, and 448C can be in any suitable direction (e.g., a direction other than a direction parallel to one of the axes A1, A2, and / or A3). When each of the wheels 448A, 448B, and 448C is an omniwheel, a Mecanum wheel, and / or the like, the resulting force can be such that the roller of each of the wheels 448A, 448B, and 448C rotates about its associated axis. In this manner, drive system 400 can cause robot 400 to move in any suitable direction by increasing or decreasing the output speed of motors 442A, 442B, and / or 442C.
[0114] The cleaning assembly 465 included in the robot 400 can be of any suitable shape, size, and / or configuration. As mentioned above, the cleaning assembly 465 includes a mounting portion 479 coupled to the support structure 425 of the frame 410 (see, e.g., FIGS. 21 and 22 ). In some embodiments, the mounting portion 479 of the cleaning assembly 465 can include any suitable linkage and / or mechanism configured to allow the cleaning assembly 465 to be moved relative to the frame 410 via an actuator 486, as shown in FIG. 22 . More specifically, the actuator 486 can be coupled to an actuator mount 431 of the support structure 425 and to the mounting portion 479 of the cleaning assembly 465. Thus, actuation of the actuator 486 can, for example, reconfigure the mounting portion 479 of the cleaning assembly 465 (e.g., change the arrangement of any suitable linkages and / or the like included within the mounting portion 479). Thus, in some embodiments, the cleaning assembly 465 can be moved closer to or away from the frame 410, which in turn can move the cleaning assembly 465 away from or closer to, respectively, the surface along which the robot 400 moves. For example, in some cases, the cleaning assembly 465 can be moved relative to the frame 410 to modulate and / or control the amount or pressure between the cleaning head and / or cleaning members of the cleaning assembly 465 and the surface. For example, in some cases, the pressure exerted by the cleaning head on a wooden floor and / or the like (e.g., in a gym) may be less than the pressure exerted by the cleaning head on a concrete floor and / or the like (e.g., in a warehouse). In other embodiments, the amount of pressure can be modulated, for example, based on a determination of the soiling level of the surface being cleaned (e.g., higher pressure for very soiled floors).
[0115] As shown in FIGS. 26-28 , the cleaning assembly 465 includes a frame 466, a cover 467, a shroud 478, a first brush 469, a second brush 471, a third brush 484, and a motor 474. The frame 466 can be configured to support at least a portion of the cleaning assembly 465. As shown in FIG. 26 , the frame 466 can include and / or be coupled to a skirt 480 that can extend from the frame 466 toward the surface to be cleaned. The cover 467 is coupled to the frame 466 and configured to cover, house, and / or enclose at least a portion of the cleaning assembly 465. More specifically, the cover 467 can be coupled to the frame 466 and define an interior volume 468 that can house at least a portion of the first brush 469 and the second brush 471, as shown in FIG. 27 . In some embodiments, at least a portion of the interior volume 468 can define a suction volume or the like, e.g., within which a negative pressure can be created to draw debris into the cleaning assembly 465 and ultimately into the debris volume or the like. For example, as described above, the robot 400 includes a vacuum source 485 that can be in communication with the interior volume 468 of the cleaning assembly 465, e.g., via port 481 (see, e.g., FIG. 26 ). In this manner, the vacuum source 485 can be configured to create a negative pressure differential within the interior volume 468 that can be operable to draw debris into the cleaning assembly 465.
[0116] 28 , motor 474 includes an output 475 that may be operably coupled to a first pulley 470 fixedly coupled to first brush 469, a second pulley 472 fixedly coupled to second brush 471, and a tensioner pulley 476 via a belt 477. Thus, motor 474 may rotate output pulley 475, which in turn rotates first pulley 470, second pulley 472, and tensioner pulley 476. Thus, when first pulley 470 is fixedly coupled to first brush 469 and second pulley 472 is fixedly coupled to second brush 471, motor 474 can be configured to rotate first brush 469 and second brush 471. Additionally, as shown in FIG. 16 , shroud 478 can be configured to cover and / or house at least a portion of output pulley 475, first pulley 470, second pulley 472, and tensioner pulley 476.
[0117] In some embodiments, the cleaning assembly 465 can be arranged such that the motor 474 rotates the first brush 469 and the second brush 471 in substantially the same rotational direction. In other embodiments, the motor 474 can be configured to rotate the first brush 469 in a first rotational direction and the second brush 471 in a second rotational direction opposite the first rotational direction. In yet other embodiments, the cleaning assembly 465 can include a first motor configured to rotate the first brush 469 and a second motor configured to rotate the second brush 471 independently of the first brush 469. In this manner, the first brush 469 and the second brush 471 can be rotated, e.g., to collect and / or scrub the surface and entrain dust and / or debris within the interior volume 468. Additionally, negative pressure generated by a vacuum source or equivalent (as described above) can draw dust and / or debris into a containment volume or equivalent (e.g., similar to the debris volume 212 defined by the containment portion 211 of the frame 210 described above with reference to FIG. 4). While brushes 469 and 471 are shown in FIG. 27 as being generally circular, in other embodiments, brushes 469 and 471 can be of any suitable configuration. For example, in some embodiments, brushes 469 and 471 can include a cylindrical base with any suitable number of brushes arranged in any suitable manner along the cylindrical base. In other embodiments, brushes 469 and 471 can include any suitable number of cords, strings, lobes, and / or other cleaning elements extending from the cylindrical base. In still other embodiments, brushes 469 and 471 can be discs and / or orbital brushes and / or equivalent.
[0118] As mentioned above, the cleaning assembly 465 includes a third brush 484. The third brush 484 can be any suitable cleaning member, such as a disc and / or an orbital brush. As shown in FIGS. 26-28 , the third brush 484 can be coupled to and / or otherwise supported by a support arm 482 that is coupled to the cover 467 and is disposed substantially outside of the interior volume 468 defined by the frame 466 and the cover 467. Specifically, the support arm 482 extends from the cover 467 such that the third brush 484 is disposed forward of the frame 466. The support arm 484 can be of any suitable configuration and / or support structure. For example, as shown in FIG. 26 , the support arm 482 can include a spring 483 or equivalent configured to allow the third brush 484 to be flexibly coupled to the cover 467. For example, when the third brush 484 is positioned forward of the frame 410, the third brush 484 can be placed in contact with an object that would not otherwise be in contact with the cleaning assembly 465. Thus, the arrangement of the springs 483 can be such that when placed in contact with an object, at least a portion of the force associated with the impact of the third brush 484 compresses the springs 483. In other words, the springs 483 can be configured to absorb at least a portion of the force associated with the third brush 484 impacting the object. Although not shown in FIGS. 26-28 , the third brush 484 can be coupled to a motor configured to rotate the third brush 484 in response to a signal received from the electronics system 490, for example.
[0119] At least a portion of the cleaning assembly 465 can be in communication with the electronics system 490 and can be configured to send signals to and / or receive signals from the electronics system 490 associated with operation of the cleaning assembly 465. For example, in some cases, the electronics system 490 can send signals to the actuator 486 that can be operable to activate the actuator 486 and move the cleaning assembly 465 relative to the frame 410, as described above. In some cases, the electronics system 490 can send signals to the motor 474 that can be operable to transition the motor 474 between an “off” operating state and an “on” operating state, which can in turn be operable to initiate rotation of the first brush 469 and the second brush 471, respectively. Similarly, the electronics system 490 can be configured to send signals to a motor coupled to the third brush 484 that can be operable to start or stop rotation of the third brush 484.
[0120] As mentioned above, electronics system 490 can be configured to control any suitable portion of robot 400 using, for example, feedback control methods such as a PID control scheme and / or the like. For example, electronics system 490 can include and / or communicate with one or more electrical and / or electronic components such as any number of cameras, transceivers, beacons, encoders, odometers, tachometers, accelerometers, IMUs, proximity sensors, relay logic, switches, and / or the like (collectively referred to herein as “sensors”). In some embodiments, electronics system 490 can include and / or communicate with any of the aforementioned sensors. Accordingly, the sensors can sense, detect, and / or otherwise determine one or more operating conditions associated with robot 400 and / or one or more environmental conditions associated with the environment in which robot 400 is placed, as described in detail above.
[0121] Expanding further, in this embodiment, electronics system 490 includes and / or communicates with at least a user interface 492, a camera 493, and a laser transceiver 494. While not shown in FIGS. 18-28 , electronics system 490 may also include and / or communicate with one or more encoders, odometers, accelerometers, and / or IMUs included within drive system 440. Similarly, electronics system 490 may include and / or communicate with any suitable shut-off switch device and / or safety device or mechanism that may be operable to power down or turn off robot 400 when criteria associated with a potential safety hazard are met. Laser transceiver 494 may be, for example, an optical radar (LIDAR) and may be configured to emit a laser beam (e.g., visible light, infrared light, and / or the like) and configured to sense and / or otherwise determine an amount of reflection, refraction, dissipation, and / or the like associated with the emitted laser beam. Thus, the laser transceiver 494 can be configured to sense the relative position of objects within an environment and / or the like, as described in detail above with reference to the robot 200 in Figures 2-8.
[0122] Electronics system 490 can be implemented within any suitable device and / or assembly. For example, electronics system 490 can include a PCB with at least a processor in communication with a memory. As such, the processor can be configured to execute a set of instructions, code, and / or modules (e.g., stored in the memory). In some embodiments, user interface 492 of electronics system 490 can be, for example, a tablet or the like. In such embodiments, at least a portion of electronics system 490 can be implemented within user interface 492. As an example, in some embodiments, user interface 492 (i.e., a tablet) can include a processor, memory, an input / output (I / O) interface, and / or the like. Thus, the processor can be configured to execute a set of instructions or code stored in the memory and can send and / or receive signals to and / or from any suitable electrical and / or electronic components included within robot 400. In some embodiments, user interface 492 may implement a feedback control system or the like, e.g., where user interface 492 may receive signals from any suitable sensor or the like (e.g., including laser transceiver 494, camera 493, and / or any other sensor described herein) and execute a set of instructions and / or code associated with defining one or more subsequent actions for any suitable electrical and / or electronic components included within the robot. In some embodiments, user interface 492 may implement a control scheme such as PID control and / or the like. In other embodiments, user interface 492 may allow a user to manually operate and / or manage robot 400. In still other embodiments, electronics system 490 may be implemented in any other suitable hardware that may be in communication with user interface 492.For example, in some embodiments, user interface 492 is a display or the like configured to present data based on, for example, one or more signals received from a processor. In some embodiments, user interface 492 can be a tablet configured to communicate with a remote electronic device, such as a personal computer or a mobile electronic device (e.g., a smartphone), via a wired or wireless network and / or the Internet. Further, in some cases, user interface 492 can be removable from robot 200 while remaining in communication with the rest of robot 200.
[0123] As described in detail above with reference to robot 200, electronics system 490 can receive signals associated with one or more operating conditions from camera 493, laser transmitter / receiver 494, and / or any other suitable sensors (not shown in FIGS. 18-28 ). In turn, electronics system 490 can execute instructions, code, a set of modules, etc. associated with controlling one or more subsequent actions of drive system 440 and / or cleaning assembly 465 based, at least in part, on the data received from the sensors. Electronics system 490 can then send signals indicative of instructions to perform one or more subsequent actions to associated electrical and / or electronic components (e.g., actuator 486 coupled between frame 410 and cleaning assembly 465, a pump such as vacuum source 485, motors such as motors 442A, 442B, and 442C of drive system 440, motor 474 of cleaning assembly 465, and / or any other suitable devices).
[0124] For example, in some instances, laser transceiver 494 can sense proximity between a portion of robot 400 and an object and transmit a signal associated therewith to electronics system 490. Based, at least in part, on predetermined criteria and / or thresholds associated with proximity data (e.g., stored in memory or the like), electronics system 490 (e.g., a processor included therein) can implement and / or execute one or more processes and / or modules operable in determining a subsequent action of at least a portion of robot 400 (as described in detail above with reference to robot 200). Similarly, camera 493 can capture image and / or video data and transmit the data to electronics system 490. Camera 493 can be, for example, a Kinect v2 camera, as described above. In some embodiments, camera 493 can capture discrete photographs and / or continuously record a video stream, which can include data used by electronics system 490 to determine the relative position of robot 400, object recognition and / or verification, real-time monitoring, tracking, and / or the like. In some cases, electronics system 490 can receive imaging data from camera 493, execute a set of processes, and present the imaging data on user interface 492. In other cases, electronics system 490 can be configured to transmit a signal associated with the imaging data to a remote electronic device via a network or the like. In some cases, camera 493 can capture video data while robot 400 is operating and can store the video data, which may later be reviewed by a user to verify the completion and / or functionality of robot 400 (e.g., via user interface 492 and / or a remote electronic device).In this manner, electronics system 490 can receive signals from any suitable sensors or equivalents, and can control robot 400 in at least a semi-autonomous manner, as described in detail above with reference to robot 200 illustrated in Figures 2-8. Accordingly, control processes and / or equivalents will not be described in further detail herein.
[0125] 29-40 illustrate a device 500, such as a robot configured to clean a surface, according to another embodiment. The device 500 (also referred to herein as a “cleaning robot” or “robot”) includes at least a frame 510, a drive system 540, an electronics system 590, and a cleaning assembly 565. The cleaning robot 500 can be used to clean (e.g., vacuum, scrub, disinfect, etc.) any suitable surface area, such as, for example, a floor of a home, commercial building, warehouse, etc. The robot 500 can be of any suitable shape, size, or configuration and can include one or more systems, mechanisms, assemblies, or subassemblies that can, for example, navigate along a surface, map a surface, clean a surface, and / or perform any suitable function associated with the like. Additionally, portions of the robot 500 can be similar, at least in form and / or function, to associated portions of the robots 100, 200, 300, and / or 400, and therefore, the similar portions will not be further described herein.
[0126] The frame 510 of the robot 500 can be of any suitable shape, size, and / or configuration. For example, in some embodiments, the frame 510 can include a set of components, or the like, coupled to form a support structure configured to support the drive system 540, the cleaning assembly 565, and the electronics system 590. More specifically, in this embodiment, the frame 510 includes an upper storage portion 508 (see, e.g., FIGS. 29-32), a lower storage portion 536 (see, e.g., FIGS. 29-32), an electronics storage portion 517, and a support portion 520 (see, e.g., FIGS. 33-36). As described above with reference to the frame 410 of the robot 400, the frame 510 can include any suitable components, such as, for example, a sheet, a tube, a rod, a bar, etc. For example, in the embodiment shown in FIGS. 29-40, the frame 510 includes a handle 505 configured to be engaged by a user during initialization and / or manual use of the robot 500. In other embodiments, the frame 510 does not include the handle 505. In some embodiments, the frame 510 can include and / or support a body or the like configured to enclose at least a portion of the robot 500. For example, in this embodiment, the upper storage portion 508 and the lower storage portion 536 collectively form at least a portion of the body of the robot 500.
[0127] Electronics housing portion 517 (see, e.g., FIG. 30 ) is configured to receive at least a portion of electronics system 590. More specifically, electronics housing portion 517 of frame 510 may include a set of walls configured to at least temporarily isolate at least a portion of electronics system 590. Although not shown, electronics housing portion 517 may include one or more removable portions that may be moved relative to and / or removed therefrom to access electronics system 590 contained therein.
[0128] 31 and 32 , the upper storage portion 508 of the frame 510 can include a set of components configured to define a debris cavity 512. The debris cavity 512 can be of any suitable shape, size, or configuration. While not shown, the frame 510 and / or the body of the robot 500 can define an opening configured to place the debris cavity 512 in fluid communication with a cleaning assembly 565, as described in further detail herein. The debris cavity 512 can house and / or accommodate a vacuum source 585, which can be configured to generate a negative pressure differential within the debris cavity 512, which in turn can result in a suction force being applied on and / or within the cleaning assembly 565. Thus, the cleaning assembly 565 can transfer waste, debris, fluids, and / or the like from a surface over which the robot 500 is moving to the debris cavity 512. Additionally, the upper storage portion 508 includes and / or is coupled to a cover or lid 518 configured to substantially enclose the debris cavity 512 when the cover or lid 518 is in a closed configuration (see, e.g., FIG. 29 ). In some embodiments, the upper storage portion 508 and / or the debris cavity 512 of the frame 510 may be substantially similar in form and / or function to at least a portion of the storage portion 411 and / or the debris cavity 412, respectively, described above with reference to the robot 400. Accordingly, the upper storage portion 508 will not be described in further detail herein.
[0129] The lower storage portion 536 can include a set of components configured to define one or more cavities and / or storage compartments. For example, as shown in FIGS. 31 and 32 , the lower storage portion 536 defines at least a battery cavity 537 configured to receive, store, and / or otherwise enclose one or more batteries 591 of the robot 500. As described above with reference to the upper storage portion 508, the lower storage portion 536 also includes a cover or lid 538 configured to substantially close, isolate, and / or cover the battery cavity 537 when in the closed configuration (see, e.g., FIG. 29 ). Although not shown, the lower storage portion 536 can also contain and / or define one or more storage compartments configured to store liquids, such as cleaning solution and / or waste fluids (e.g., used volumes of cleaning solution). Additionally, although not shown, the lower storage portion 536 may include any suitable tubes, pipes, conduits, channels, openings, tubing, etc. configured to establish fluid communication between the lower storage portion 536 and the cleaning assembly 565 such that a fluid (e.g., a liquid such as a cleaning solution) may be transferred therebetween. In some embodiments, a pump is disposed within the lower storage portion 536 and / or between the lower storage portion 536 and the cleaning assembly 565 to force a volume of liquid to flow therebetween.
[0130] The support portion 520 may include any suitable components, parts, mechanisms, connections, and / or the like configured to support, for example, the storage portion 511 of the frame 510, the drive system 540, and / or the cleaning assembly 565. For example, in the embodiment shown in FIGS. 33-36 , the support portion 520 includes a top plate 521 and a support structure 525. The top plate 521 may be coupled to the storage portion 511 of the frame 510 and may couple the support portion 520 thereto. As shown in FIG. 33 , the top plate 521 may also be coupled to and / or otherwise support a battery tray 518, which may in turn support a set of batteries 591. As shown in FIG. 34 , the top plate 521 may include and / or be coupled to a set of bumpers 504 (e.g., dampers, cushions, springs, etc.) configured to provide shock absorption and / or distribution of forces otherwise transferred from the top plate 521 to the battery tray 518. In some embodiments, the lower storage portion 536 can be coupled to the battery tray 518, and thus an arrangement of bumpers 504 or the like can reduce the amount of force and / or impact that would otherwise be transmitted onto the lower storage portion 536 by the top plate 521. Additionally, the top plate 521 can be configured to support and / or couple to a laser transceiver 594 and / or any other suitable sensor and / or transceiver (e.g., see FIGS. 33-35 ) included within the electronics system 590.
[0131] The support structure 525 may include any suitable components configured to support at least a portion of the drive system 540, the cleaning assembly 565, and / or the rear skirt assembly 535. For example, as shown in FIG. 35 , the support structure 525 is coupled (e.g., mechanically coupled via one or more fasteners, welded, and / or otherwise joined, etc.) to a support plate 559, which is in turn coupled to a drive mechanism 541 of the drive system 540. Additionally, the support structure 525 is operably coupled to a set of wheels 548 of the drive system 540 via one or more bearings, axles, hubs, etc. Thus, the support structure 525 is configured to support the drive system 540, thereby coupling the drive system 540 to the frame 510.
[0132] Similarly, the support structure 525 can be coupled to any suitable structure, component, device, etc. configured to couple the support structure 525 to the cleaning assembly 565. For example, the support structure 525 is coupled to at least a set of linkages 528 and a pivot member 529 configured to movably couple the cleaning assembly 565 to the support structure 525. For example, the linkages 528 and the pivot member 529 can each be coupled to a mounting portion 579 of the cleaning assembly 565, as described in further detail herein, and can enable the cleaning assembly 565 to be moved closer to or away from a surface in response to actuation of a first actuator 586, for example.
[0133] As shown in FIGS. 35 and 36 , the support structure 525 is also coupled to a second actuator 587 and a set of rollers 588. The second actuator 586 is configured to couple to the coupling portion 534 of the rear skirt 535. In this manner, the second actuator 586 can be actuated to move the rear skirt 535 closer to or away from the surface being cleaned. In this manner, the rear skirt 535 can engage the surface along which the robot 500 travels and reduce the amount of dust that is not entrained within the cleaning assembly 565. The rollers 588 are configured to support, for example, one or more wires, hoses, conduits, tubes, etc., that extend along the length of the support structure 525. In some cases, the arrangement and / or use of the rollers 588 can prevent damage to wires and / or damage or kinking of hoses, etc., when the cleaning assembly 565 is moved closer to or away from the surface being cleaned.
[0134] As shown in FIGS. 35-37 , drive system 540 can be any suitable system, mechanism, machine, assembly, etc. coupled to support portion 520 (e.g., support structure 525) and configured to move robot 500 along a surface. For example, in this embodiment, drive system 540 includes drive mechanism 541 (as described above with reference to robot 300) having a single steerable wheel and any suitable number of passive wheels 548. Wheels 548 can be coupled to support structure 525 in any suitable manner. For example, as described above, wheels 548 can be coupled to support structure 525 via one or more bearings, axles, hubs, bushings, etc. Although described as being passive wheels, in other embodiments, wheels 548 can include and / or at least operatively coupled to one or more motors. Additionally, although not shown in FIGS. 35-37 , wheels 548 can be coupled to any suitable sensors or encoders, such as those described herein.
[0135] 37 , drive mechanism 541 is coupled to support plate 559, which in turn couples drive mechanism 541 to frame 510. Drive mechanism 541 includes a first motor 542A, a second motor 542B, a rotation subassembly 555, a coupling plate 561, a wheel 550, and one or more sensors 595. Wheel 550 and first motor 542A are each coupled to coupling plate 561, which in turn is fixedly coupled to a portion of rotation subassembly 555 (as described in further detail herein). More specifically, first motor 542A is fixedly coupled to coupling plate 561, and wheel 550 is rotatably coupled to coupling plate 561, e.g., contacting the output of first motor 542A such that rotation of the output of first motor 542A results in rotation of wheel 550 relative to coupling plate 561. The arrangement of wheel 550 and first motor 542A is such that first motor 542A rotates wheel 550 about an axis that is generally parallel to the surface along which robot 500 moves. In other words, wheel 550 is configured to rotate about a generally horizontal axis in response to the output of first motor 542A.
[0136] The rotating subassembly 555 is coupled to the coupling plate 561 and the support plate 559, which in turn rotatably couples at least a portion of the drive mechanism 541 to the support structure 525 of the frame 510. More specifically, the rotating subassembly 555 is coupled to the second motor 542B and includes a mounting plate 556 that is rotatably coupled to an output member 546 of the second motor 542B (e.g., a gear, sprocket, pulley, etc., rotatably coupled to the mounting plate 556 via one or more bearings or the like). The output member 546 can be, for example, a direct output from the second motor 542B, or can be operably coupled to the output of the second motor 542B via, for example, a belt or chain. For example, in some embodiments, the output of the second motor 542B can be coupled to a gear having a first diameter, which in turn is operably coupled to the output member 546 via a drive chain. In such an embodiment, the output member 546 can have a second diameter greater than the first diameter such that one revolution of the output of the second motor 542B results in less than one revolution of the output member 546. In other words, the output of the second motor 542B and the output member 546 can be arranged to have any suitable gear ratio and / or equivalent such that rotation of the output of the second motor 542B results in rotation of the output member 546 with a desired rotational speed and / or torque. In some cases, one or more sensors 595 can be configured to sense the speed of the output member 546 and / or a fault condition, such as, for example, a snapping or slipping belt or chain. Furthermore, the drive mechanism 541 can be arranged such that the output member 546 rotates about an axis that is substantially perpendicular to the surface along which the robot 500 moves. In other words, the output member 546 is configured to rotate about a substantially vertical axis in response to the output of the second motor 542B.
[0137] Output member 546 is fixedly coupled to coupling plate 561, which in turn couples wheel 550 and first motor 542A to rotation subassembly 555. Output member 546 and coupling plate 561 are arranged such that when output member 546 is rotated in response to the output of second motor 542B, coupling plate 561, and therefore wheel 550 and first motor 542A, are similarly rotated. Wheel 550 is therefore configured to rotate about a first axis (e.g., generally parallel to the surface) and a second axis (e.g., generally perpendicular to the surface). In some embodiments, rotation of wheel 550 about the first axis moves robot 500 forward along the surface or moves robot 500 backward along the surface, while rotation of wheel 550 about the second axis is operable in steering robot 500 in a desired direction. Thus, first motor 542A and second motor 542B may each receive a signal and / or a power flow operable to move robot 500 along a surface in a desired direction at a desired speed, as described in further detail herein. In some embodiments, the use of drive mechanism 541 having a single steerable wheel 550 may, for example, reduce the turning radius of robot 500, which in some cases may enable robot 500 to access tight spaces or the like, as described above.
[0138] The cleaning assembly 565 included within the robot 500 can be of any suitable shape, size, and / or configuration. As previously mentioned, the cleaning assembly 565 includes a mounting portion 579 coupled to the support structure 525 of the frame 510 (see, e.g., FIGS. 33 and 34 ). For example, the mounting portion 579 of the cleaning assembly 565 is coupled to the linkage 528 and the pivot member 529 for pivotal movement. More specifically, the first actuator 586 is coupled to the support portion 520 top plate 521 of the frame 510 and to a portion of the pivot member 529 such that actuation of the first actuator 586 causes pivotal movement of the pivot member 529 relative to the frame 510. When the pivot member 529 is coupled to the mounting portion 579 of the cleaning assembly 565, pivotal movement of the pivot member 529 causes pivotal movement of the cleaning assembly 565. The linkage 528 coupled to the mounting portion 579 is configured to control the direction and / or range of motion associated with the pivoting of the cleaning assembly 565 relative to the frame 510. For example, the linkage 528 can be, for example, a generally rigid elongate member having a fixed length (e.g., a fixed length during use but an adjustable length at other times). Thus, when the linkage 528 and the pivot member 529 are coupled to the mounting portion 579 at different positions (see, for example, FIG. 34 ), actuation of the first actuator 586 results in movement of the cleaning assembly 565 closer to or away from the surface to be cleaned, for example, as described in detail above with reference to the robot 400.
[0139] As shown in FIGS. 38-40 , the cleaning assembly 565 includes a frame 566, a first brush 569, a second brush 571, a first motor 574A, and a second motor 574B. The frame 566 supports at least a portion of the cleaning assembly 565. As shown in FIG. 38 , the frame 566 may include and / or be coupled to a pair of skirts 580 extending from opposite sides of the frame 566 toward the surface. A cover 567 is coupled to the frame 566 and configured to cover, house, and / or enclose at least a portion of the cleaning assembly 565. More specifically, the cover 567 may be coupled to the frame 566 and define at least a portion of an interior volume 568 that may house at least a portion of the first brush 569 and the second brush 571, as shown in FIGS. 39 and 40 . In some embodiments, at least a portion of the interior volume 568 may define a suction volume or equivalent within which, for example, a negative pressure (e.g., via a vacuum source 585) may be created to draw debris into the cleaning assembly 565 and ultimately into the debris cavity 512 or equivalent.
[0140] The first motor 574A and second motor 574B of the cleaning assembly 565 can be any suitable motors configured to rotate, for example, the first brush 569 and the second brush 571, respectively. For example, as shown in FIG. 39 , the first motor 574A includes an output 575A that can be operably coupled to a first pulley 570 (e.g., via a belt or equivalent, not shown) that is fixedly coupled to the first brush 569, such that rotation of the output 575A results in rotation of the first brush 569. Similarly, as shown in FIG. 40 , the second motor 574B includes an output 575B that can be operably coupled to a second pulley 572 that is fixedly coupled to the second brush 571 (e.g., via a belt or equivalent, not shown), such that rotation of the output 575B results in rotation of the second brush 571. As shown in FIG. 38, the cleaning assembly 565 includes a pair of shrouds 578 configured to cover and / or house at least a portion of the outputs 575A and 575B, the first pulley 570, and the second pulley 572.
[0141] In some embodiments, the cleaning assembly 565 can be arranged such that the motors 574A and 574B rotate the first brush 569 and the second brush 571, respectively, in substantially the same rotational direction. In other embodiments, the first motor 574A can be configured to rotate the first brush 569 in a first rotational direction, and the second motor 574B can be configured to rotate the second brush 571 in a second rotational direction opposite the first rotational direction. Although not shown in FIGS. 38-40 , the cleaning assembly 565 can be arranged such that the interior volume 568 defined by the frame 566 is in fluid communication with, for example, the upper storage portion 508 and / or the lower storage portion 536 of the frame 510. For example, the debris cavity 512 is in fluid communication with the interior volume 568 and is configured to draw debris from inside the interior volume 568 into the debris cavity 512 via negative pressure generated by the vacuum source 585. The lower storage portion 536 (e.g., its liquid storage portion) may be in fluid communication with the interior volume 568 via one or more hoses, pipes, conduits, tubes, etc. More specifically, one or more hoses or the like may extend from the lower storage portion 536 to, for example, the fluid delivery rail 507 of the cleaning assembly 565 (see, for example, FIG. 38 ). The fluid delivery rail 507 is in turn in fluid communication with the interior volume 568 and thus may deliver, for example, a flow of cleaning solution and / or any other suitable liquid from the lower storage portion 536 to the interior volume 568, as described above. In this manner, the cleaning assembly 565 may be similar in form and / or function to the cleaning assemblies 165, 265, 365, and / or 465 described in detail above.
[0142] At least a portion of the cleaning assembly 565 can be in communication with the electronics system 590 and can be configured to send signals to and / or receive signals from the electronics system 590 associated with operation of the cleaning assembly 565. For example, in some cases, the electronics system 590 can send signals to the first actuator 586, which can be operable to move the cleaning assembly 565 relative to the frame 510, as described above. In some cases, the electronics system 590 can send signals operable in transitioning the motors 574A and 574B between an “off” operating state and an “on” operating state, which can in turn be operable in initiating rotation of the first brush 569 and the second brush 571, respectively.
[0143] As described in detail above with reference to robots 100, 200, 300, and / or 400, electronics system 590 can be configured to control any suitable portion of robot 500 using, for example, feedback control methods such as PID control schemes and / or the like. For example, electronics system 590 can include and / or communicate with one or more electrical and / or electronic components such as any number of cameras, transceivers, beacons, encoders, odometers, tachometers, accelerometers, IMUs, proximity sensors, relay logic, switches, and / or the like (collectively referred to herein as “sensors”). In some embodiments, electronics system 590 can include and / or communicate with any of the aforementioned sensors. Thus, the sensors can sense, detect, and / or otherwise determine one or more operating conditions associated with robot 500 and / or one or more environmental conditions associated with the environment in which robot 500 is placed, as described in detail above. For example, electronics system 590 includes and / or communicates with at least a user interface 592, one or more cameras 593, and a laser transceiver 594. Although not shown in FIGS. 29-40 , electronics system 590 can also include and / or communicate with one or more encoders, odometers, accelerometers, and / or IMUs included within drive system 540. In this manner, electronics system 590 can be substantially similar in form and / or function to electronics systems 190, 290, 390, and / or 490 of robots 100, 200, 300, and / or 400, respectively. Furthermore, as mentioned above, electronics system 590 can be implemented within one or more devices included within robot 500 and / or one or more remote devices, such as, for example, a controller, a personal computer, a laptop, a tablet, a smartphone, a wearable electronic device, etc.In some cases, the electronics system 590 can be configured to transmit data associated with operational status, status, completion percentage, cleaning maps, etc. to a remote device, which can then be remotely accessed by a user to verify the desired operation of the robot 500.
[0144] As described in detail above with reference to robot 200, electronics system 590 can receive signals associated with one or more operating conditions from camera 593, laser transceiver 594, and / or any other suitable sensors (not shown in FIGS. 29-40 ). In turn, electronics system 590 can execute instructions, code, a set of modules, etc. associated with controlling one or more subsequent actions of drive system 540 and / or cleaning assembly 565 based, at least in part, on the data received from the sensors. Electronics system 590 can then transmit signals indicative of instructions to perform the one or more subsequent actions to associated electrical and / or electronic components (e.g., first actuator 586 coupled between frame 510 and cleaning assembly 565, a pump such as vacuum source 585, motors such as motors 542A, 542B, 574A, and / or 574B, and / or any other suitable devices). In some cases, based on the data received from the sensors, the electronics system 590 can be configured to increase or decrease the speed and / or acceleration of the robot 500, change the operating state of the cleaning assembly 565, temporarily pause the robot 500, remap the surface being cleaned, redefine the cleaning path and / or cleaning plan, and / or the like, as described in detail above.
[0145] In some cases, electronics system 590 can be configured to “shut down,” “power down,” and / or otherwise cease operation in response to data received from a sensor. For example, in some cases, electronics system 590 can receive a signal from a sensor indicating an unsafe and / or undesirable operating condition; thus, receipt of the signal can cause electronics system 590 to initiate a “kill switch” or equivalent. In some embodiments, electronics system 590 can include a physical “kill switch” that can be activated by a user. In still other embodiments, electronics system 590 can receive a signal from a remote device, such as a smartphone, personal computer, tablet, laptop, etc., indicating an instruction to initiate the “kill switch.” In this manner, robot 500 can be configured to operate safely within defined safety parameters (e.g., user-defined, manufacturer-defined, etc.), for example. Thus, robot 500 can operate in a substantially similar manner as described above with reference to any of robots 100, 200, 300, and / or 400, described in detail above.
[0146] While cleaning assemblies 265, 365, and 465 are specifically shown and described above, in other embodiments, robots 200, 300, and / or 400 can include any suitable cleaning assembly. For example, FIGS. 29-31 illustrate cleaning assembly 665 according to another embodiment. As described above with reference to cleaning assemblies 265, 365, and / or 465, cleaning assembly 665 includes a mounting portion 679 configured to be coupled to a frame of the robot. In some embodiments, mounting portion 679 of cleaning assembly 665 can include any suitable linkage and / or mechanism configured to allow cleaning assembly 665 to be moved relative to the frame, as described above.
[0147] As shown, the cleaning assembly 665 includes a frame 666, a cover 667, a shroud 678, a first brush 669, a second brush 671, a motor 674, and a laser transceiver 694. The frame 666 can be configured to support at least a portion of the cleaning assembly 665. As shown in FIG. 29 , the frame 666 can include and / or be coupled to a skirt 680, which can extend from the frame 666 toward the surface to be cleaned. The cover 667 is coupled to the frame 666 and configured to cover, house, and / or enclose at least a portion of the cleaning assembly 665. The laser transceiver 694 is coupled to the cover 667 and configured to function substantially similarly to the laser transceivers 294 and / or 494 described in detail above.
[0148] The cover 667 can couple to the frame 666, as shown in FIG. 30 , and define an interior volume 668 that can house at least a portion of the first brush 669 and the second brush 671. In some embodiments, at least a portion of the interior volume 668 can define a suction volume or the like, within which, for example, a negative pressure can be created to draw debris into the cleaning assembly 665 and ultimately into the debris volume or the like. For example, as mentioned above, the robot 600 includes a vacuum source 685 that can communicate with the interior volume 668 of the cleaning assembly 665, for example, via port 681 (see, for example, FIG. 29 ). In this manner, the vacuum source 685 can be configured to create a negative pressure differential within the interior volume 668 that can be operable to draw debris into the cleaning assembly 665.
[0149] The motor 674 of the cleaning assembly 665 can be any suitable motor configured to rotate, for example, the first brush 669 and the second brush 671. As shown in FIG. 31 , the motor 674 includes an output 675 that can be operably coupled via belts to a first pulley 670 fixedly coupled to the first brush 669, a second pulley 672 fixedly coupled to the second brush 671, and a tensioner pulley 676. Thus, the motor 674 can rotate the output pulley 675, which in turn rotates the first pulley 670, the second pulley 672, and the tensioner pulley 676. Thus, with first pulley 670 fixedly coupled to first brush 669 and second pulley 672 fixedly coupled to second brush 671, motor 674 can be configured to rotate first brush 669 and second brush 671. Additionally, as shown in FIG. 16 , shroud 678 can be configured to cover and / or house at least a portion of output pulley 675, first pulley 670, second pulley 672, and tensioner pulley 676.
[0150] In some embodiments, the cleaning assembly 665 can be arranged such that the motor 674 rotates the first brush 669 and the second brush 671 in substantially the same rotational direction. In other embodiments, the motor 674 can be configured to rotate the first brush 669 in a first rotational direction and the second brush 671 in a second rotational direction opposite the first rotational direction. In yet other embodiments, the cleaning assembly 665 can include a first motor configured to rotate the first brush 669 and a second motor configured to rotate the second brush 671 independently of the first brush 669. In this manner, the first brush 669 and the second brush 671 can be rotated, for example, to collect and / or scrub a surface and entrain dust and / or debris within the interior volume 668. Additionally, negative pressure generated by a vacuum source or equivalent (as described above) can draw dust and / or debris into a containment volume or equivalent (e.g., similar to the debris volume 212 defined by the containment portion 211 of the frame 210 described above with reference to FIG. 6). As described above with reference to the cleaning assembly 465, the brushes 669 and 671 can be of any suitable configuration. In this manner, the cleaning assembly 665 can be used in any suitable robot, such as the robots 200, 300, and / or 400, to clean surfaces over which the robot is moving.
[0151] Any of the embodiments described herein can implement any suitable process for efficiently cleaning surfaces having any suitable regular or irregular boundaries. For example, in some embodiments, a robot can execute any suitable process that can cause the robot to follow the contours of a cleaning environment (e.g., a surface) within a predetermined distance, such as about 5 centimeters or less, from a boundary such as a wall or the like. Such a robot can estimate the shape of the contour to be followed, for example, using one or more laser scanner sensors, 3D camera sensors, ranging sensors, proximity sensors, etc., and then implement a feedback control system and / or the like to substantially maintain the cleaning head and / or cleaning assembly within the predetermined distance of the surface. Additionally, the robot can execute a set of processes, for example, to determine the angle of a portion of the robot relative to the desired contour. In some embodiments, the robot can execute a feedback control system and / or the like to substantially maintain at least a portion of the robot (e.g., the cleaning assembly) within about a 90-degree angle of the contour (i.e., perpendicular to the contour).
[0152] As described in detail above with reference to robot 200, in some embodiments, a user can operate the robot, initialize the robot, and / or otherwise map the cleaning environment. In some instances, such an initialization process can include, for example, collecting data from any suitable sensors or equivalents included within the robot. For example, as a user drives and initializes the robot, the robot's electronics system can collect and / or store data received from one or more of a wheel odometer, an IMU, a laser, a depth imager, a ranging sensor, a camera, a radio beacon, a pressure sensor, and / or any other suitable sensors. Once the electronics system receives data from one or more sensors, the electronics system (e.g., a processor included therein) can implement and / or execute a set of processes and / or equivalents to define a map of the cleaning environment based on the data received from the sensors. Once the cleaning environment is mapped, the electronics system can execute a set of processes and / or instructions associated with graphing and / or charting the robot position, represented by nodes, using the environmental map. The electronics system can then determine efficient paths and / or fits to pass through the nodes (eg, traveling salesman methods, algorithms, and / or the like).
[0153] In some embodiments, the robot's electronics system can be configured to define efficient paths and clean surfaces, for example, based on breaking down the cleaning environment into zones. More specifically, as described above, the robot can be configured to determine and / or define a map of the cleaning environment. In some cases, the map can be a map or equivalent that includes specific and / or relevant information about the cleaning environment. Once the map is defined, the electronics system can break down the cleaning environment into zones and determine efficient paths for cleaning each zone independently (e.g., "clean within zone"), for example, as shown in FIG. 44. In some cases, by first defining the map, the electronics system can determine and / or define an efficient breakdown of the map into zones, for example, without a user defining the zones. Furthermore, by defining the zones based on a map and / or equivalent, the electronics system can be configured to determine the robot's position, percentage completion, and / or the like.
[0154] Once paths are determined for each zone, the electronics system can determine, for example, efficient paths for combining zones (e.g., "inter-zone cleaning"). As an example, in some cases, the electronics system can be configured to begin mapping a zone or the like by defining movements and / or paths that closely follow a set of boundaries associated with that zone, as described in detail above. Once the paths for following the boundaries are defined, the electronics system can then define paths for cleaning the area bounded by the paths for following the boundaries. Once the paths for each zone are defined, intra-zone cleaning paths can be defined, and inter-zone cleaning paths can be defined based on the most efficient combination of intra-zone cleaning paths. In some cases, defining inter-zone cleaning paths includes remapping surfaces. In some cases, the most efficient intra-zone or inter-zone cleaning path can be the path most likely to avoid obstacles and / or other objects along the path.
[0155] As shown in FIG. 44 , in some embodiments, the most efficient path for cleaning an area can be, for example, a method in which the robot moves back and forth in a generally straight line (as described above), with at least some overlap to ensure the surface is completely cleaned (e.g., if the electronics system inaccurately determines the robot's position). Alternatively, in some cases, the electronics system can determine the most efficient path for cleaning an area, which can be a spiral or concentric path. Similarly, the electronics system can be configured to define a path such that overlap exists to ensure the surface is completely cleaned. The electronics system can also determine the most efficient way to enter and / or exit an area based, for example, on the exit of a previous section just cleaned and / or the entrance of a subsequent area to be cleaned. Furthermore, in some cases, the electronics system can receive signals from sensors and / or the like while traveling along the path and can update the intra-zone cleaning path and / or the inter-zone cleaning path in response to discovered obstacles or the like. In other words, the electronics system can remap at least a portion of the surface and define an updated intra-zone cleaning path or an updated inter-zone cleaning path. Thus, the updated intra-zone cleaning path and / or the updated inter-zone cleaning path may define the most efficient cleaning path to accommodate the found object or the like.
[0156] While the electronics system is described herein as transmitting signals to parts of the robot (e.g., sensors, motors, actuators, pumps, etc.) operable in controlling at least a portion of the robot, in some cases the electronics system may transmit a flow of electricity having a desired power (e.g., rather than a signal containing data). In such cases, for example, the amount of power (i.e., the voltage (V) x amperage (A) associated with the flow of electricity) may be associated with a desired operating state of the electrical and / or electronic components receiving the flow of power. For example, in some cases the electronics system may deliver a first amount of power to a motor of a cleaning assembly configured to rotate one or more brushes. The motor may in turn be configured to rotate an output shaft and / or pulley with a first rotational speed. Similarly, the electronics system may deliver a second amount of power greater than the first amount of power to the motor of the cleaning assembly, and in response, the motor may rotate the output shaft and / or pulley with a second rotational speed greater than the first rotational speed. In other cases, the electronics system may send signals to the electrical and / or electronic components of the cleaning assembly and the flow of power, in such cases, the signals may indicate instructions to operate to a predetermined operating state, which may be correlated with the amount of power received.
[0157] Although some of the electronics systems are described herein as receiving a signal from any suitable sensor and / or the like and a subsequent action being taken by a portion of the robot based on the processor executing a set of instructions, in other cases, a signal from a sensor can be operable in causing a portion of the robot to take a subsequent action. For example, in some cases, a signal transmitted from a sensor can be operable in transitioning a switch, fuse, breaker, and / or any other suitable logic device from a first state in which the portion of the robot receives a flow of electrical power to a second state in which the portion of the robot receives substantially no flow of electrical power. For example, a sensor can transmit a signal associated with a portion of the robot being placed in contact with an object as the robot is moved along a surface that can be operable in stopping the rotation of the output of one or more motors included in the drive system.
[0158] While various embodiments have been described above, it should be understood that they are presented by way of example only, and not by way of limitation. Where the foregoing schematics and / or embodiments show certain components arranged in a certain orientation or position, the arrangement of the components may be modified. While embodiments have been illustrated and described in detail, it should be understood that various changes in form and detail may be made. For example, while robots 100, 200, 300, and / or 400 have been described above as including motors that drive and / or rotate one or more components via belt and pulley arrangements, in other embodiments, the motors can be configured to drive any suitable components directly and / or via chain and gear arrangements. While various embodiments have been described as having particular features and / or combinations of components, other embodiments are possible that have combinations of any features and / or components from any of the embodiments described above.
[0159] Although the methods and / or diagrams described above show certain events and / or flow patterns occurring in a certain order, the order of certain events and / or flow patterns may be modified. Additionally, certain events may occur simultaneously and sequentially in parallel processes, when possible.
[0160] Some embodiments described herein relate to computer storage products with non-transitory computer-readable media (which may also be referred to as non-transitory processor-readable media) having instructions or computer code thereon for performing various computer-implemented operations. The computer-readable media (or processor-readable media) is non-transitory in the sense that it does not include ephemeral propagating signals (e.g., propagating electromagnetic waves that carry information over a transmission medium such as space or a cable). The media and computer code (also referred to herein as code) may be designed and constructed for a specific purpose or multiple purposes. Examples of non-transitory computer-readable media include, but are not limited to, magnetic storage media such as hard disks, optical storage media such as compact discs / digital video discs (CDs / DVDs), compact disc read-only memories (CD-ROMs), magneto-optical storage media such as optical discs, carrier wave signal processing modules, and hardware devices specially configured to store and execute program code, such as application-specific integrated circuits (ASICs), programmable logic devices (PLDs), read-only memory (ROM), and random access memory (RAM) devices. Other embodiments described herein relate to computer program products, which may include, for example, the instructions and / or computer code discussed herein.
[0161] Examples of computer code include, but are not limited to, microcode or microinstructions produced by a compiler or the like, machine instructions, code used to create web services, and files containing higher-level instructions executed by a computer using an interpreter. For example, embodiments may be implemented using an imperative programming language (e.g., C, FORTRAN, etc.), a functional programming language (Haskell, Erlang, etc.), a logic programming language (e.g., Prolog), an object-oriented programming language (e.g., Java, C++, etc.), or other programming languages and / or other development tools. Additional examples of computer code include, but are not limited to, control signals, encryption code, and compression code.
Claims
1. 1. A method of using a cleaning robot, the cleaning robot having a drive system configured to move the cleaning robot along a surface, a cleaning assembly configured to engage the surface and transfer debris from the surface to a storage volume of the cleaning robot, and an electronics system having at least a processor and a memory, the processor configured to execute instructions stored in the memory associated with using the cleaning robot, the method comprising: defining a cleaning plan associated with the map of the surface, the cleaning plan defining at least a cleaning path along the surface and operational states of the drive system and the cleaning assembly based at least in part on a position of the cleaning robot relative to the cleaning path; After defining the cleaning plan, moving the cleaning robot along the surface; determining an updated cleaning schedule based on changes to the surface based on receiving data associated with the surface from one or more sensors; moving the cleaning robot so that the cleaning robot moves according to the updated cleaning plan; Including, Defining the cleaning path along the surface comprises: Decomposing the map into a plurality of regions; determining an intra-zone path along each zone of the plurality of zones based at least in part on an efficiency associated with the cleaning robot transferring debris from the portion of the surface for that zone to the storage volume; combining each intra-area path based at least in part on an efficiency associated with the cleaning robot transferring debris from across the mapped surface to the storage volume; A method comprising:
2. The method of claim 1 , further comprising: defining the map of the surface based on data received from at least one sensor.
3. The method of claim 1 , wherein the updated cleaning path is a path that avoids objects.
4. wherein the one or more sensors include a camera, and the method further comprises: capturing an image of the object; recognizing the object by analyzing the image; defining one or more actions based on determining whether the object is stationary; and The method of claim 3 further comprising:
5. The method of claim 4 , wherein the one or more actions include navigating around the object.
6. The electronics system is configured to transmit data associated with the operating state to a remote device, and the method further comprises: The method of claim 4 , further comprising transmitting, from the electronics system, a signal indicative of an instruction to perform the one or more actions.
7. 1. A method of using a cleaning robot, the cleaning robot having a drive system configured to move the cleaning robot along a surface, a cleaning assembly configured to engage the surface and transfer debris from the surface to a storage volume of the cleaning robot, and an electronics system including at least a processor and a memory, the processor configured to execute instructions stored in the memory associated with using the cleaning robot, the method comprising: defining a cleaning plan associated with the map of the surface, the cleaning plan defining at least a cleaning path along the surface and an operational state of each of the drive system and the cleaning assembly based at least in part on a position of the cleaning robot relative to the cleaning path; After defining the cleaning schedule, cleaning the surface by moving the cleaning robot along the surface; capturing images of an object with a camera of the cleaning robot as the cleaning robot moves along the surface, the object being along the cleaning path but not included within the map of the surface; recognizing the object by analyzing the image; determining whether the object is contained within the map of the surface; if the object is not contained within the map of the surface, sending a signal to a motor of the drive system to navigate around the object and return to the cleaning path once a predetermined distance has been exceeded; Including, Defining the cleaning path along the surface comprises: Decomposing the map into a plurality of regions; determining an intra-zone path along each zone of the plurality of zones based at least in part on an efficiency associated with the cleaning robot transferring debris from the portion of the surface for that zone to the storage volume; combining each intra-area path based at least in part on an efficiency associated with the cleaning robot transferring debris from across the mapped surface to the storage volume; A method comprising:
8. 8. The method of claim 7, further comprising: defining the map of the surface in response to data received from one or more sensors, the camera being at least one of the one or more sensors.
9. Analyzing the image includes: determining whether the object is a movable object; determining one or more actions on a portion of the cleaning robot based on determining that the object is a movable object; and The method of claim 7, comprising:
10. stopping the cleaning robot for a sufficient period of time; determining whether the object is moving relative to the cleaning robot; collecting data associated with the object based on determining that the object is stationary; and 10. The method of claim 9, further comprising:
11. updating the cleaning schedule based on changes to the surface, the changes to the surface including the object; defining an updated cleaning path, the updated cleaning path avoiding the object; and The method of claim 7 further comprising:
12. The method comprises: determining if any portion of the surface was not cleaned; moving the cleaning robot to clean the portion of the surface based on determining that the portion of the surface was not cleaned; and The method of claim 7 further comprising:
13. 1. A method of using a cleaning robot, the cleaning robot having a drive system configured to move the cleaning robot along a surface, a cleaning assembly configured to engage the surface and transfer debris from the surface to a storage volume of the cleaning robot, and an electronics system having at least a processor and a memory, the processor configured to execute instructions stored in the memory associated with using the cleaning robot, the method comprising: defining a cleaning plan associated with a map of the surface to be cleaned by the cleaning robot, the cleaning plan defining at least a cleaning path along the surface and operational states of the drive system and the cleaning assembly based at least in part on a position of the cleaning robot relative to the cleaning path; capturing images of objects with a camera of the cleaning robot as the cleaning robot moves along the surface; recognizing the object by analyzing the image; defining an updated cleaning plan based on identifying the object as an object to be avoided, the updated cleaning plan including at least an updated cleaning path, the updated cleaning path based at least in part on an efficiency associated with the cleaning robot cleaning the surface as the cleaning robot moves along the updated cleaning path while avoiding the object; controlling the cleaning robot so that the cleaning robot cleans the surface according to the updated cleaning schedule; Including, Defining the cleaning path along the surface comprises: Decomposing the map into a plurality of regions; determining an intra-zone path along each zone of the plurality of zones based at least in part on an efficiency associated with the cleaning robot transferring debris from the portion of the surface for that zone to the storage volume; combining each intra-area path based at least in part on an efficiency associated with the cleaning robot transferring debris from across the mapped surface to the storage volume; A method comprising:
14. 14. The method of claim 13, further comprising: defining the map of the surface in response to data received from one or more sensors, the camera being at least one of the one or more sensors.
15. 15. The method of claim 14, wherein defining the cleaning schedule includes a user moving the cleaning robot along the surface such that the plurality of sensors generate data representative of objects relative to the surface.
16. the electronic equipment system is in electronic communication with a remote electronic device over a network; 16. The method of claim 15, wherein the user moving the cleaning robot along the surface comprises one of the user manually engaging the cleaning robot to move it along the surface, or the user engaging a remote device in electronic communication with the electronics system via a network to virtually control the cleaning robot to move it along the surface.
17. The electronic equipment system is in electronic communication with a remote device over a network, and the method comprises: transmitting a signal from the cleaning robot indicating an undesirable operating condition; initiating a shut-off switch based on receiving the signal indicating an undesirable operating condition; and 14. The method of claim 13, further comprising:
Citation Information
Patent Citations
Autonomous mobile device
JP2014048842A
Self-propelled type electronic device
WO2015033590A1