A robot equipped with cleaning elements including a disposable hard surface wiping base.
By incorporating high-fidelity sensors and advanced navigation, cleaning robots can efficiently clean and disinfect complex environments with narrow spaces, overcoming the limitations of conventional designs.
Patent Information
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- PROCTER & GAMBLE CO
- Filing Date
- 2024-07-23
- Publication Date
- 2026-07-23
Smart Images

Figure 2026524662000001_ABST
Abstract
Description
Technical Field
[0001] The present disclosure generally relates to robots such as cleaning robot automation, and more particularly to physical environments (e.g., living spaces, office spaces, etc.), and in particular to the field of robotics applied to cleaning, disinfecting, or otherwise improving those having narrow or changing spaces created by obstacles within the physical environment.
Background Art
[0002] Existing cleaning robots lack the ability to maneuver or navigate in complex, e.g., narrow and / or variable spaces within a given physical environment. Typically, such cleaning robots are designed to have a large or otherwise large cleaning footprint designed to clean wide open areas as the robot moves within a given space. However, such large designs prevent effective cleaning in complex spaces, leaving such spaces uncleaned or otherwise unaffected by the cleaning robot.
[0003] Furthermore, given their large size, conventional cleaning robots lack the fine motor control necessary to navigate or move within complex spaces. These conventional robots can execute algorithms for cleaning large spaces, but typically cannot account for the narrow spaces and corners that are most difficult to clean. This problem is particularly problematic because physical environments can vary greatly depending on having different shapes, sizes, and dimensions, thereby preventing large robots from effectively maneuvering, navigating, or operating in other ways to provide a complete cleaning.
Summary of the Invention
Problems to be Solved by the Invention
[0004] For the reasons stated above, there is a need for robots configured to clean, disinfect, or otherwise improve physical environments (e.g., living spaces, office spaces, etc.), particularly those having narrow or changing spaces created by obstacles within the physical environment or otherwise created by the physical environment itself, as further described herein. [Means for solving the problem]
[0005] Generally, cleaning robots are described herein. Cleaning robots may be equipped with high-fidelity sensors (e.g., joysticks or other data-rich sensors) for precise control, maneuverability, or other advanced robot navigation strategies. Furthermore, in various embodiments, cleaning robots may be sized or sized to maneuver, clean, disinfect, or otherwise improve a physical environment (e.g., living space, office space, etc.) in areas having narrow or changing spaces created by obstacles or edges (e.g., walls) in the physical environment. The cleaning robots described herein provide solutions for overcoming problems arising from areas to be cleaned or environments that conventional robots have typically found difficult to clean, adapt, and / or operate within.
[0006] More specifically, in some embodiments, the robot may be configured to clean an environment. The robot may comprise a body including a chassis and a perimeter. The robot may further comprise motors configured to move the robot within the environment. The robot may further comprise a multidirectional sensor comprising a plurality of radial regions, each radial region defining a direction relative to the robot. The robot may further comprise a processor and computer memory, each communicatively coupled to the multidirectional sensor. The robot may further comprise computing instructions stored in the computer memory and, when executed by the processor, configured to cause the processor to receive sensor data from the multidirectional sensor when at least a portion of the perimeter of the robot's body comes into contact with an object in the environment. The computing instructions may further comprise the processor, which may then execute the processor to cause the motors to actuate based on the sensor data, thereby causing the robot to change its course.
[0007] In addition, as described herein, the robot may be configured to clean an environment via one or more navigation strategies. In such embodiments, the robot is configured for cleaning, comprising a body having a chassis and cleaning elements. The robot may further include motors configured to move the robot within the environment. The robot may further include sensors and a processor communicatively coupled to the sensors. The robot may further include computer memory communicatively coupled to the processor. The robot may further include computing instructions stored in the computer memory and, when executed by the processor, configured to cause the processor to actuate the motors and drive the robot forward relative to the cleaning elements. When the computing instructions are executed by the processor, the processor may further cause the processor to receive sensor data from the sensors. The sensor data may indicate objects in the environment relative to the robot. When the computing instructions are executed by the processor, the processor may cause the processor to actuate the motors based on the sensor data and change its course while maintaining a forward direction relative to the cleaning elements.
[0008] In yet another embodiment, the robot may be configured for cleaning. The robot may comprise a body including a chassis. The robot may further comprise a cleaning element comprising a base mounting section for receiving and holding a disposable hard surface wiping base. The base mounting section may have a width measured substantially perpendicular to the forward direction of the robot's movement. The width may be about 13.9 cm or less. The robot may further comprise motors configured to move the robot within an environment. The robot may further comprise sensors and a processor communicatively coupled to the sensors. The robot may further comprise computer memory communicatively coupled to the processor. The robot may further comprise computing instructions stored in the computer memory and, when executed by the processor, configured to cause the processor to (i) receive sensor data from the sensors and (ii) actuate the motors based on the sensor data to maneuver the robot within an environment. The robot may be sized and dimensional in various configurations, and / or the robot's computing instructions may be configured to maneuver the robot so that it can clean various aspects of a given environment. For example, in various embodiments, the robot may be configured in one or more of the following ways. These methods may include, in non-limiting embodiments, a case in which the robot is configured to maneuver in an environment by performing a predetermined number of passes when a processor executes a computing instruction. Additionally or alternatively, the robot may be further configured to maneuver in an environment by performing a predetermined speed for each pass when a processor executes a computing instruction. Additionally or alternatively, the robot may have a height of 9 centimeters or less. Additionally or alternatively, the body of the robot may have bumpers having a corner radius of 0.5 to 30 millimeters. Additionally or alternatively, the cleaning element of the robot may have a turning radius of less than 27.5 centimeters. Additionally or alternatively, the body of the robot may have bumpers having at least a front bumper portion.In such embodiments, the cleaning element may include at least a front cleaning element portion, and the distance from the front bumper portion to the front cleaning element portion is less than 10 millimeters. Additionally or alternatively, the robot body may include a bumper having at least one side bumper portion. In such embodiments, the cleaning element may include at least a side cleaning element portion, and the distance from the side bumper portion to the side cleaning element portion is less than 10 millimeters.
[0009] This disclosure relates to improvements to other arts or arts, at least in part to improvements to computing devices in the field of robotics, such that cleaning robots as described herein may be equipped with high-fidelity sensor control (e.g., via a joystick or other data-rich sensors) for robot navigation strategies. Furthermore, in some embodiments, sensors may be limited to one or more directions of movement and / or one or more distances of movement within or relative to the body of the robot to prevent the sensors from moving to a fully activated position. For example, in such embodiments, the lifespan and / or operation of the sensor, as well as its data fidelity, may be improved or extended by preventing or avoiding the operation of a multidirectional sensor to a fully activated position, thereby improving and / or extending the accuracy and operating efficiency of the robot itself.
[0010] This disclosure includes applying certain elements of the claims together with, or using, a specific machine, such as a robot configured to clean, disinfect, or otherwise improve a physical environment (e.g., a living space, an office space, etc.).
[0011] In addition, this disclosure includes certain features beyond those of routine, conventional activities that are well understood in the art, and adds a unique step to limiting the claims to cleaning robots configured to clean, disinfect, and / or otherwise improve certain useful applications, such as physical environments (e.g., living spaces, office spaces, etc.), particularly those having narrow or changing spaces created by obstacles within the physical environment.
[0012] The advantages will become more apparent to those skilled in the art from the following description of preferred embodiments illustrated and described as examples. As should be understood, other and different embodiments are possible, and their details can be modified in various embodiments. Therefore, the drawings and description should be considered illustrative and not restrictive. [Brief explanation of the drawing]
[0013] The figures described below illustrate various aspects of the systems and methods disclosed herein. It should be understood that each figure depicts an aspect of a particular aspect of the disclosed systems and methods, and that each figure is intended to correspond to those possible aspects. Furthermore, wherever possible, the following description refers to the reference figures contained in the figures below, and features depicted in multiple figures are designated using consistent reference figures.
[0014] The drawings show the currently considered configuration, but please understand that the current configuration is not limited to the exact configuration and means shown. [Figure 1] This specification illustrates perspective views of exemplary robots for cleaning a space or environment or otherwise interacting with a space or environment, according to various embodiments disclosed herein. [Figure 2A] Figure 1 shows exploded views of a portion of an exemplary robot according to various embodiments disclosed herein. [Figure 2B]Illustrates a further exploded view of the exemplary robot of FIG. 1 according to various aspects disclosed herein. [Figure 2C] Illustrates a top cross-sectional view of the exemplary robot of FIG. 1 according to various aspects disclosed herein. [Figure 3] Illustrates a top view of the exemplary robot of FIG. 1 according to various aspects disclosed herein. [Figure 4] Illustrates a bottom view of the exemplary robot of FIG. 1 according to various aspects disclosed herein. [Figure 5] Illustrates a side view of the exemplary robot of FIG. 1 according to various aspects disclosed herein. [Figure 6] Illustrates a rear view of the exemplary robot of FIG. 1 according to various aspects disclosed herein. [Figure 7] Illustrates a front view of the exemplary robot of FIG.. 1 according to various aspects disclosed herein. [Figure 8] Illustrates an exemplary environment in which the robot of FIG. 1 can navigate or move in other ways according to various aspects disclosed herein. [Figure 9A] Illustrates an exemplary multi-directional sensor according to various aspects disclosed herein. [Figure 9B] Illustrates an exemplary multi-directional sensor of FIG. 9A having an exemplary plurality of radial regions or a set of a plurality of radial regions according to various aspects disclosed herein. [Figure 10A] Illustrates an exemplary magnetically-based multi-directional sensor configuration according to various aspects disclosed herein. [Figure 10B] Illustrates an exemplary Hall-effect-based multi-directional sensor configuration according to various aspects disclosed herein. [Figure 10C] Illustrates an exemplary time-of-flight (ToF)-based multi-directional sensor configuration according to various aspects disclosed herein. [Figure 11A] Illustrates a coverage map showing exemplary navigation or movement of a robot within an environment according to various aspects disclosed herein. [Figure 11B] Illustrates a flowchart of a navigation algorithm according to various aspects disclosed herein. [Figure 11C] Illustrates a flowchart for an edge navigation algorithm according to various aspects disclosed herein. [Figure 11D] Illustrates a further flowchart portion of the edge navigation algorithm of FIG. 11A according to various aspects disclosed herein. [Figure 11E] Illustrates a further flowchart portion of the edge navigation algorithm of FIG. 11A according to various aspects disclosed herein. [Figure 11F] Illustrates an additional coverage diagram showing further exemplary navigation or movement of a robot within an environment according to various aspects disclosed herein. [Figure 12A] Illustrates exemplary navigation or movement of a robot within an environment according to various aspects disclosed herein. [Figure 12B] Illustrates exemplary navigation or movement of a robot for re-capturing, re-catching, or re-collecting debris after interaction with an obstacle according to various aspects disclosed herein. [Figure 12C] Illustrates exemplary navigation or movement of a robot for minimizing or preventing the dropping of debris while the robot is turning according to various aspects disclosed herein. [Figure 13] Illustrates exemplary navigation or movement of a robot within an environment according to various aspects disclosed herein. [Figure 14] Illustrates exemplary debris and its size according to various aspects disclosed herein.
[0015] These figures are for illustrative purposes only and depict preferred embodiments. Alternative embodiments of the systems and methods illustrated herein may be employed without departing from the principles of the invention described herein.
Best Mode for Carrying Out the Invention
[0016] Figure 1 illustrates a perspective view of an exemplary robot 100 for cleaning a space or environment or otherwise interacting with a space or environment, according to various embodiments disclosed herein. As shown in the embodiment of Figure 1, the robot includes a body 102 comprising a chassis 102c and a perimeter 102op. In various embodiments, the perimeter 102op may include various embodiments or components of the body 102 of the robot 100, or may be formed in other ways, and these embodiments or components may include, in non-limiting embodiments, a bumper 104, a chassis 102c (e.g., the lower portion of the body 102), and / or the top portion 102t of the body 102. However, it should be understood that the perimeter (e.g., the perimeter 102op) may include additional, fewer, and / or different components of a given robot body (e.g., body 102). More generally, the outer circumference (e.g., outer circumference 102op) defines the outermost region of the robot 102 that can come into contact with (e.g., bump into or hit) objects in the cleaning environment (e.g., environment 800 as shown in Figure 8). Furthermore, the outer circumference (e.g., outer circumference 102) may be formed of a material such as a rigid plastic such as polyethylene, or a material that otherwise prevents (or mitigates) surface damage or marking when the outer circumference 102op of the robot 100 comes into contact with objects (e.g., walls, baseboards, or furniture) in the environment in which the robot 100 is moving or otherwise operating. Furthermore, Figure 1 illustrates a wheel 256w1, which is the first wheel of the robot 100. Additional figures herein (e.g., Figure 2B) further illustrate exemplary wheels of the robot 100 herein.
[0017] Figure 2A illustrates an exploded view 200 of a portion of an exemplary robot 100 of Figure 1 in various embodiments disclosed herein. In the embodiment of Figure 2A, the body 102 of the robot 100 is shown with its various components (except the wheels, which are described further herein in relation to additional figures, e.g., Figure 2B). As shown in Figure 2A, the robot 100 includes a bumper 104 configured to move relative to the body 102 of the robot 100. For example, the bumper 104 may move toward the body 102 of the robot 100 when the bumper 104 comes into contact with an object in the environment in which the robot 100 is moving. In some embodiments, the bumper 104 includes one or more magnets (e.g., any one or more of magnets 106m1, 106m2, and / or 106m3) located on, inside, or partially inside the bumper 104. Magnets may be used to determine the position of the bumper 104 relative to a magnetic sensor(s), as further described herein with respect to Figure 10A, for example.
[0018] In a further embodiment, the bumper 104 includes an actuator (e.g., actuator 106a) configured to actuate one or more sensors (e.g., multidirectional sensors 108s1 and 108s2). Generally, the actuator (e.g., actuator 106a) is coupled to one or more sensors (e.g., multidirectional sensors 108s1 and 108s2) so that when the bumper 104 comes into contact with an object in the environment, the actuator (e.g., actuator 106a) transmits force or otherwise provides information for detection by one or more sensors (e.g., multidirectional sensors 108s1 and 108s2). For example, when the bumper 104 collides with an object, the actuator 106a transmits force to the multidirectional sensor 108s2 (e.g., as shown in Figure 2C), and the multidirectional sensor 108s2 is coupled to the actuator 106a in the actuator receiver 106ar2 (e.g., as shown in Figure 2C). Similarly, when the bumper 104 collides with an object, the actuator 106a transmits a force to the multidirectional sensor 108s1, which is coupled to the actuator 106a in the actuator receiver 106ar1. The transmitted force may include forces in any direction, including lateral, horizontal, and / or vertical directions, which may be sensed by the robot 100's multidirectional sensors (e.g., multidirectional sensor 108s1 and sensor 108s2).
[0019] Furthermore, in various embodiments, the actuator 106a may comprise various parts. For example, as shown in Figure 2A, the actuator 106a may comprise parts 106ap1 and 106ap2, which in some embodiments are embodiments of a cross arm or beam portion that may form the actuator 106a. The additional parts may transmit or distribute force to or between various sensors (e.g., multidirectional sensors 108s1 and 108s2) so that the sensors (or sensors) can collect different data based on the location of a collision of a given object on the bumper 104. For example, if actuator part 106ap2 forms part of actuator 106a, an impact on the bumper 104 closer to actuator receiver 106ar2 will transmit a larger amount of force to actuator receiver 106ar1 (across actuator part 106ap2). Therefore, in such embodiments, the multidirectional sensor 108s1 senses or detects a force greater than when the actuator portion 106ap2 did not form part of the actuator 106a (and thus generates proportionally greater sensor data).
[0020] As a further example, if actuator portion 106ap1 forms part of actuator 106a, an impact to the corner side of bumper 104 closer to actuator receiver 106ar1 will transmit a greater amount of force (across actuator portion 106ap1) to actuator receiver 106ar2. Therefore, in such an embodiment, the multidirectional sensor 108s2 will sense or detect force data to a greater extent than if actuator portion 106ap1 did not form part of actuator 106a. However, it should be understood that additional, fewer, and / or different portions may be formed for actuator 106a or otherwise configured to cause actuator receivers (multiple) (e.g., receiver 106ar1 and / or receiver 106ar2) to receive additional, fewer, and / or different forces (multiple), thereby causing their respective sensors (e.g., multidirectional sensor 108s1 and sensor 108s2) to experience and detect different forces or other data. In this way, sensors and actuators may be configured together to detect sensor data of varying fidelity, degree, or other types in order to configure the robot 100 to sense or respond to its environment and navigate within it.
[0021] As further shown in Figure 2A, multidirectional sensors (e.g., multidirectional sensors 108s1 and 108s2) may be mounted or otherwise positioned on the body 102 to sense, detect, or otherwise receive sensor data. An exemplary embodiment in Figure 2A illustrates a multidirectional sensor 108s1 positioned on, within, or partially within the chassis 102c of the robot body 102. The multidirectional sensor 108s2 is also positioned on the chassis 102c, as further shown in Figure 2C of this specification. The multidirectional sensors(s) may be coupled to or otherwise connected to an actuator (e.g., actuator 106a of the bumper 104) by a receiver (e.g., receiver 106ar1 and / or receiver 106ar2) to receive and detect force or motion and the amount thereof to various degrees(s) or in other ways. However, it should be understood that the multidirectional sensors(s) may be positioned elsewhere on the body 102 of the robot 100. In some embodiments, one or more multidirectional sensors may include one or more time-of-flight sensors, and such sensors may be positioned on the front or other part of the robot 100.
[0022] Furthermore, with respect to Figure 2A, the robot 100 includes a circuit board 110. A battery 118 may supply power to the circuit board 110 and its various components, which may include, in non-limiting embodiments, a processor 112 and a memory 114. The processor 112 may be communicatively coupled to the memory 114 via the computing bus of the circuit board 110. Furthermore, the processor 112 may be communicatively coupled to a multidirectional sensor(s) (e.g., multidirectional sensor 108s1 and sensor 108s2) to receive sensor data from the sensor(s). The processor 112 may transfer (e.g., store) information including computing instructions and / or data (e.g., sensor data) to and receive (e.g., load) information from the memory 114. For example, in various embodiments, the memory 114 includes computer memory that stores computing instructions (e.g., firmware) on the computer memory for execution by the processor 112. The processor 112 may receive sensor data from a multidirectional sensor(s) (e.g., multidirectional sensor 108s1 and sensor 108s2), and computing instructions loaded from memory 114 cause the processor 112 to analyze the sensor data to cause the robot 100 to implement any of the algorithms, methods, processes, steps, and / or otherwise functionalities described herein. For example, computing instructions may cause the robot 100 to navigate within an environment and respond to objects or sets of objects and / or surface types within the environment (e.g., different variations in the surface or its type caused by vents, registers, or other such items that cause irregularities or differences in the surface of the floor area in which the robot is operating), and include processing or otherwise interpreting sensor data to determine how the robot or a part thereof should operate when it comes into contact with an object in the environment. In various embodiments, computing instructions may be implemented in any desired programming language (e.g., C, C++, C#, C, Java®, etc.) and may be interpreted or executed as program code, machine code, assembly code, bytecode, etc.
[0023] The circuit board 110 may further include a time-of-flight (ToF) sensor 116, which may be positioned to scan, image, or detect the inner surface of the robot 100, such as the inner surface of the bumper 104. The ToF sensor 116 may scan the surface of the bumper 104 several times per second to determine the distance or magnitude of the movement of the surface of the bumper 104, for example, through the movement or degree of movement of the bumper surface.
[0024] Figure 2A further illustrates a cavity 122 including a wheel well for housing a wheel structure as shown in Figure 2B. The wheel structure may be mounted by a swivel plate 124 to allow the wheel structure to swivel or to allow the wheel structure to move, dampen, and / or respond to the floor(s) and / or obstacles.
[0025] The robot 100 may further include a button 105b that activates a switch 105s when pressed. The switch 105s may be communicatively coupled to a processor 112, thereby, when pressed, sending a signal to cause the processor 112 to perform various functions, including turning the robot's state on and off, cycling through different operating modes of the robot, and / or otherwise implementing any of the algorithms, flowcharts, or instructions described herein.
[0026] Figure 2B illustrates a further exploded view 250 of the exemplary robot 100 of Figure 1 in various embodiments disclosed herein. In the embodiment of Figure 2B, the wheels of the robot 100 are shown with various components. These components are configured to fit into the cavity 122 of the robot 100 or otherwise be mounted and attached to the pivot plate 124, as described herein with respect to Figure 2A. For example, a wheel structure as shown in Figure 2A may comprise a wheel base 252 configured to receive motors 254m1 and 254m2 (e.g., via screws). Each of the motors 254m1 and 254m2 may be coupled to wheels 256w1 and 256w2 (e.g., positioned within or partially within them). Each of the motors 254m1 and 254m2 may be an electric motor (e.g., a 12-volt direct current (DC) motor) that may include a gearbox and / or shaft(s) for rotating the wheel or tire, for example, via a toothed base wheel, as shown for each of the wheels 256w1 and 256w2. In a non-limiting embodiment, the motors 254m1 and 254m2 may be brushed or brushless motors(s) having a gear assembly and electronics for rotating the wheel when a power source (e.g., battery 118) is applied. However, it should be understood that additional, fewer, and / or different motors(s) or types may be used to move or drive the robot 100.
[0027] A wheelbase 252, as shown in Figure 2A, may be attached (for example, via screws) to the swivel plate 124 of the robot 100, allowing the wheelbase (for example, thus wheels 256w1 and 256w2) to tilt and / or swivel, which allows the wheel structure as a whole to respond to the floor surface and / or fluctuations of the environment (caused by uneven floors, bumps, etc.) by absorbing shocks or adapting to the floor or other fluctuations.
[0028] As shown in Figure 2B, motors 254m1 and 254m2 may be connected to wheels 256w1 and 256w2, respectively. Motor 254m1 is configured to drive or rotate wheel 256w1 forward and backward. Similarly, motor 254m2 is configured to drive or rotate wheel 256w2 forward and backward. The processor 112 may be communicatively coupled to each of the motors and transmit signals to the motors to drive, operate, or otherwise move the robot 100 in various directions or in various ways (e.g., forward, backward, and rotation) within a given environment.
[0029] Figure 2C illustrates a top cross-sectional view 270 of an exemplary robot of Figure 1 in various embodiments disclosed herein. The robot 100 has an exemplary robot configuration comprising two sensors, namely a first sensor and a second sensor, each of which may be a multidirectional sensor embedded in the chassis 102c or at least partially exposed within the chassis 102c. In particular, as shown in Figure 2C, the robot 100 includes a multidirectional sensor 108s1 and a multidirectional sensor 108s2. In various embodiments, the processor 112 may execute computing instructions stored in memory 114, which, when executed by the processor, cause the processor 112 to receive first sensor data from multidirectional sensor 108s1 and / or second sensor data from multidirectional sensor 108s2 when at least a portion of the outer perimeter of the body 102 (e.g., outer perimeter 102op) (e.g., bumper 104) comes into contact with an object (e.g., obstacle 804) in a given environment (e.g., environment 800). The first sensor data and / or second sensor data may be analyzed by the processor 112, and the processor may respond by activating motors (e.g., motor 254m1 and / or motor 254m2) based on the first sensor data and / or second sensor data to cause the robot to change its course in the environment (e.g., exemplary environment 800) to navigate or traverse the obstacle (e.g., obstacle 804).
[0030] In the embodiment shown in Figure 2C, each of the multidirectional sensors 108s1 and 108s2 is coupled to at least a portion of the outer perimeter 102op via a multi-axis sensor actuator (e.g., actuator 106a). More generally, a given sensor (e.g., multidirectional sensor 108s1 and / or multidirectional sensor 108s2) may be coupled to a portion of the robot (e.g., bumper 104) that forms the outer perimeter of the robot. In various embodiments, the multi-axis sensor actuator (e.g., actuator 106a) is a structure that moves or otherwise operates the sensor(s) (e.g., multidirectional sensor 108s1 and / or multidirectional sensor 108s2). In some embodiments, the multi-axis sensor actuator (e.g., actuator 106a) is a damping structure that may be formed from one or more regions, portions, or frame types. For example, a multi-axis sensor actuator (e.g., actuator 106a) is shown with various exemplary parts 106ap1 and 106ap2 that may or may not form part of the multi-axis sensor actuator (e.g., actuator 106a). Additional parts 106ap1 and / or 106ap2 may be added to or removed from the multi-axis sensor actuator (e.g., actuator 106a) to provide different forces(s) across the entire physical structure of actuator 106a. For example, adding parts 106ap1 and / or 106ap2 may cause the sensors (e.g., multidirectional sensors 108s1 and / or multidirectional sensors 108s2) to experience additional forces when the force is transmitted from the bumper 104 (after impact with an object) across parts 108ap1 and / or 108ap2 to their respective actuator receivers 106ar1 and / or actuator receivers 106ar2, and ultimately to their respective sensors (e.g., multidirectional sensors 106s1 and / or multidirectional sensors 106s2) for the generation of corresponding sensor data.
[0031] Furthermore, the material properties of the multi-axis sensor actuator (e.g., actuator 106a) and / or its parts 106ap1 and / or 106ap2 may affect, or otherwise affect, the amount or degree of force, and therefore the amount or degree of sensor data generated by the sensor(s). That is, in various embodiments, the multi-axis sensor actuator 106a (and / or its parts) may be configured to deform into a shape such that the deformation of its shape can generate a change in sensor data output by at least one sensor (e.g., multidirectional sensor 108s1 and / or multidirectional sensor 108s2). For example, the damping effect of a given damping structure may arise from the physical material (e.g., plastic) of the multi-axis sensor actuator itself, and the properties and deformation behavior of the plastic(s) may generally provide damping and / or elasticity in at least some embodiments. It should be understood that the multi-axis sensor actuator does not need to be perfectly elastic. In various embodiments, the multi-axis sensor actuator can be rigid or flexible. Additionally, or alternatively, a multi-axis sensor actuator (e.g., actuator 106a) may be linear or nonlinear with respect to flexibility, but may be configured to actuate one or more sensors simultaneously. For example, a multi-axis sensor actuator (e.g., actuator 106a) as a damping structure may be coupled to a multi-directional sensor 108s1 and a second multi-directional sensor 108s2, but may be configured to have sufficient rigidity to move the multi-directional sensor 108s1 and / or multi-directional sensor 108s2 when a force is applied to the multi-axis sensor actuator (e.g., actuator 106a). Such a force may include when at least a portion of the outer circumference (e.g., outer circumference 102op) of the body 102 of the robot 100 comes into contact with an object (e.g., obstacle 804) in the environment (e.g., environment 800).For example, in some embodiments, a multi-axis sensor actuator (e.g., actuator 106a) is formed of a material (e.g., plastic) that is rigid enough to apply an actuation force (or more) to one or more of the sensors (e.g., multi-directional sensor 108s1 and / or second multi-directional sensor 108s2), and moves the sensors (or more) or interacts with them in other ways, and thus applies a force proportional to the sensors (or more) in order to generate sensor data from there.
[0032] In the embodiment shown in Figure 2C, the multidirectional sensors 108s1 and / or 108s2 may comprise joystick-type sensors that generate respective sensor data when force is applied to the sensor's joystick (e.g., 108j1 as shown in Figure 9A). For example, the joystick of the multidirectional sensor 108s1 (e.g., joystick 108j1) may be connected to or coupled to an actuator receiver 106ar1, which presses or otherwise acts on the joystick portion of the multidirectional sensor 108s1 when the bumper 104 strikes an object in the environment (e.g., exemplary environment 800). The actuation of the joystick sensor (or, otherwise, the multidirectional sensor 108s1) causes the sensor to generate sensor data (e.g., proportional to the amount of joystick movement), which is then provided to processors 112 and / or 114 for processing, analysis, and / or storage, as described herein, for example. In some embodiments, the multidirectional sensor 108s2 may also be a joystick sensor that operates in the same or similar manner as described for the multidirectional sensor 108s1.
[0033] In various embodiments, each of the multi-axis sensor actuator (e.g., 106a), the multi-directional sensor 108s1, and the multi-directional sensor 108s2 together includes or forms a composite sensor. In such embodiments, computing instructions stored in computer memory 114 are configured, when executed by the processor 112, to cause the processor 112 to generate composite sensor data based on first sensor data received by the multi-directional sensor 108s1 and / or second sensor data received by the multi-directional sensor 108s2. For example, in some embodiments, the composite sensor data may include data calculated and / or combined using each of the first and second sensor data, even if the sensor data and the second sensor data differ based on at least one of direction and / or magnitude. The composite sensor data may be calculated, generated, or otherwise determined by averaging, taking derivatives, taking weights, or otherwise combining the first and second sensor data of the multi-directional sensor 108s1 and the multi-directional sensor 108s2. Such data may be generated when the robot 100 (e.g., bumper 104) collides with an object (e.g., obstacle 804) or when the sensor(s) are activated as part of a multi-axis sensor actuator (e.g., 106a).
[0034] In addition, in some embodiments, a multi-axis sensor actuator (e.g., actuator 106a) is configured to operate separate or independently of separate sensors(s). For example, actuator 106a can be configured to operate multi-directional sensors 106s1 and / or 106s2 separately or independently by separating or otherwise removing parts of the bumper 104 (e.g., actuator part 108ap1 and / or actuator part 108ap2). For example, in some embodiments, the bumper 104 may be configured to have multiple independent parts that move freely relative to each other, thereby operating the associated sensors(s) coupled to each actuator receiver(s) separately.
[0035] Furthermore, additionally or alternatively, in some embodiments, the multi-axis sensor actuator (e.g., actuator 106a and its parts such as actuator part 106ap1 and / or actuator part 106ap2) is limited to one or more directions and / or one or more travel distances within or relative to the body 102 of the robot 100 in order to prevent at least one of the multi-directional sensors (e.g., multi-directional sensor 108s1) or a second multi-directional sensor (e.g., multi-directional sensor 108s2) from being operated to a fully activated position. For example, in such embodiments, the lifespan and / or operation of the multi-directional sensor, as well as its data fidelity, may be improved by preventing or avoiding the operation of the multi-directional sensor to a fully activated position, thereby improving and / or extending the accuracy and operating efficiency of the robot itself.
[0036] Figure 3 illustrates a top view 300 of an exemplary robot 100 of Figure 1 in various embodiments disclosed herein. Figure 3 shows the bumper 104 and the top 102t of the body 102 of the robot 100 as seen from above. The bumper 104 may have a corner radius (e.g., corner radius 104cr) configured to maximize, or at least enlarge, the area of the cleaning element (e.g., cleaning element 402 as described in relation to Figure 4).
[0037] Figure 4 illustrates a bottom view 400 of an exemplary robot of Figure 1 in various embodiments disclosed herein. Figure 4 shows the bumper 104 and chassis 102c of the body 102 of the robot 100 as seen from below. Furthermore, Figure 4 shows the wheel base 252, wheels 256w1 and wheels 256w1 as seen from below. Furthermore, Figure 4 shows a cleaning element 402 that may be attached to the body 102 of the robot 100. Such a cleaning element may include a base mounting portion (e.g., a VELCRO® base mounting portion or a grommet base mounting portion) for receiving and holding a disposable hard surface wiping base (e.g., a cleaning pad 402p) on the underside of the robot 100. The cleaning element 402 or the base mounting portion may include a width (e.g., a width 402w). The cleaning element 402 may be used to vacuum, wipe, disinfect, and / or apply cleaning solution to the floor as the robot 100 moves through the environment (e.g., environment 800). In at least one non-limiting embodiment, the cleaning element 402 may include, or be configured to otherwise include, a SWIFFER brand cleaning element or pad (such as represented by cleaning pad 402p), including variations thereof, as manufactured or provided by THE PROCTER & GAMBLE COMPANY (P&G).
[0038] Furthermore, with respect to Figure 4, the robot may have a center of rotation (e.g., center of rotation 400c). The robot may also have a turning radius, which can be measured based on the distance (e.g., distance 400bd) between the center of rotation (e.g., center of rotation 402c) and a portion of the trailing edge (e.g., trailing edge 402be) of the trailing edge cleaning pad 402p attached to or as part of the cleaning element 402.
[0039] Furthermore, as shown in Figure 4, the bumper 104 comprises a front bumper portion 104fp, a right bumper portion 104rsp, and a left bumper portion 104lsp. It should be understood that additional and / or different bumper portions, regions, or areas may be defined relative to the bumper 104, for example, as illustrated by Figure 11D of this specification.
[0040] Furthermore, as shown in Figure 4, the cleaning element 402 or a portion thereof (e.g., a cleaning pad) may be positioned close to the bumper 104. As shown, the front lateral bumper distance 402fd is the distance between the front bumper portion 104fp and the leading edge 402fe of the cleaning element 402 or a portion thereof (e.g., a cleaning pad). Similarly, the right bumper distance 402rsd is the distance between the right bumper portion 104rsp and the right edge or a portion thereof (e.g., a cleaning pad) of the cleaning element 402. Furthermore, the left bumper distance 402lsd is the distance between the left bumper portion 104lsp and the left edge of the cleaning element 402 or a portion thereof (e.g., a cleaning pad).
[0041] Figure 5 illustrates a side view 500 of the exemplary robot of Figure 1 in various embodiments disclosed herein. Figure 5 shows the bumper 104, the chassis 102c and top 102t of the main body 102, and the wheels 256w2 as seen from the side of the robot 100. The robot 100 may have a height 502 which can be measured from the bottom of the wheels (e.g., wheels 256w2) to the top portion of the robot 100.
[0042] Figure 6 shows a rear view 600 of the exemplary robot 100 of Figure 1 in various embodiments disclosed herein. Figure 6 shows the chassis 102c and top 102t of the main body 102, as well as the wheels 256w1 and 256w2, as viewed from the rear of the robot 100.
[0043] Figure 7 illustrates a front view of the exemplary robot 100 of Figure 1 in various embodiments disclosed herein. Figure 7 shows the bumper 104 and wheels 256w1 and 256w2 of the robot 100 as seen from the front.
[0044] Figure 8 illustrates an exemplary environment 800 in which the robot of Figure 1 can navigate or otherwise move according to various embodiments disclosed herein. Environment 800 illustrates an exemplary room (e.g., a living room) that includes an obstacle 804 (e.g., furniture) having two parts (e.g., legs) in which the robot 100 must navigate or move. As shown in the embodiment of the figure, the robot is programmed to move in a linear forward-backward reciprocating motion to clean the environment 800. When the robot encounters an obstacle 804, the robot 100 can navigate accordingly. For example, a bumper 104 may come into contact with the obstacle 804 (e.g., furniture) and a force may be detected by a sensor(s) (e.g., multidirectional sensors 108s1 and 108s2). Sensor data may also be sent to processor 112, which executes computing instructions to drive the robot's wheels (e.g., wheels 256w1 and / or 256w2) to drive the robot to move around or otherwise traverse the obstacle 804, allowing robot 100 to continue its forward navigation and thus cleaning the environment 800.
[0045] Robot sensor control Figure 9A illustrates an exemplary multidirectional sensor (e.g., multidirectional sensor 108s1) in various embodiments disclosed herein. In the embodiment of Figure 9A, the multidirectional sensor is an analog sensor, such as a joystick sensor. It should be understood that in other embodiments, the multidirectional sensor 108s1 may comprise a different type of sensor, such as those described herein. As shown in Figure 9A, the multidirectional sensor (e.g., multidirectional sensor 108s1) comprises a joystick 108j1, which is moved or otherwise actuated, causing the multidirectional sensor 108s1 to generate sensor data to the extent and / or magnitude associated with the distance and / or direction of the movement of the joystick 108j1. For example, in various embodiments, when the joystick 108j1 is moved or otherwise actuated by actuator 106a via actuator receiver 106ar1, the multidirectional sensor 108s1 generates sensor data. The processor 112 receives sensor data from the multidirectional sensor 108s1. This can occur, for example, when at least a portion of the outer circumference of the robot's body comes into contact with an object in the environment (e.g., environment 800). The processor 112 analyzes the sensor data and can then actuate the motors (e.g., motor 254m1 and / or motor 254m2). Since the sensor data differs based on the degree of joystick movement (or the degree of difference in change based on the sensor type), the sensor data includes high-fidelity sensor data that can be used to measure various proportional degrees of contact or other interactions with obstacles in the environment 800 (e.g., based on the degree of joystick movement). Such high-fidelity data enables the processor 112 of the robot 100 to maneuver, change its course, or otherwise drive in a highly sensitive and / or highly specific manner for cleaning in small spaces, spaces with low-angle areas, narrow corners, etc. High-fidelity sensor data enables, for example, a robot to maneuver its cleaning element 402 (e.g., comprising a cleaning pad) into and / or out of an environmental boundary edge (e.g., a wall or otherwise an edge).At the same time, high-fidelity sensor data allows the robot to be driven in such a way that it has a low impact (e.g., gentle interaction) with obstacles or walls in the environment (e.g., to avoid damaging obstacles when collided with by the robot). This may include, for example, preventing or mitigating damage to the paint on baseboards or the wood of furniture legs.
[0046] Furthermore, in some embodiments, a sensor (e.g., a multidirectional sensor 108s1) may be limited to one or more directions of movement and / or one or more distances within or relative to the body of the robot 100 in order to prevent the sensor or a part thereof (e.g., a joystick 108j1) from moving to the fully operational position. That is, the joystick or other high-fidelity sensor part may be prevented from moving to the maximum physical distance of the joystick by, for example, an actuator (e.g., an actuator 106a as described herein). Movement to the maximum distance may be stressed on the sensor or its components (e.g., a spring in the joystick sensor). By preventing or avoiding the multidirectional sensor from being operated to the fully operational position, the life and / or operation of the sensor, as well as its data fidelity, may be improved or extended, thereby improving and / or extending the accuracy and operating efficiency of the robot itself.
[0047] Figure 9B illustrates an exemplary multidirectional sensor of Figure 9A having an exemplary set of radial regions (e.g., regions 108z1 to 108z8) in various embodiments disclosed herein. Generally, the sensor data may be raw sensor data in analog or other ways that does not define discrete directions or otherwise digital-based directions. Figure 9B illustrates that in at least some embodiments, the sensor data may be formatted, extended, defined, or otherwise determined as directional sensor data indicating discrete directions or otherwise region-based directions(s) to which the multidirectional sensor is acted upon or toward. Each radial region may then be used to define a given direction relative to the robot 100.
[0048] As shown in Figure 9B, the multidirectional sensor 108s1 includes eight (8) discrete regions (e.g., regions 108z1 to 108z8). However, it should be understood that additional, fewer, or different regions may also be used. For example, in one embodiment, the multiple radial regions may include at least two radial regions. Furthermore, in some embodiments, the multiple radial regions can be configured to have a specified number of radial regions (e.g., 16 or 32 regions) or otherwise adaptable, and the increase in regions allows the sensor to report or otherwise determine a higher degree of region operability that defines the position of the joystick 108j1, thus enabling the robot 100 to perform more finite and discrete control within the environment (e.g., environment 800). Furthermore, in some embodiments, such regions do not need to be uniform in size (multiple) and / or degree (multiple). Additionally, or alternatively, such areas do not need to be radial, but may be configured to have different shapes or patterns, or otherwise be provided.
[0049] When the joystick 108j1 is stationary (i.e., not activated), the multidirectional sensor(s) may provide sensor data reporting the zero position. In some embodiments, the zero position is set by the robot 100 when the robot 100 is powered on, and the robot determines that the initial position of the multidirectional sensor (e.g., when stationary) constitutes the zero position. Such a procedure may be performed for each power cycle of the robot 100 (e.g., when the robot 100 is turned on and off). When 108j1 is moved in a given direction (e.g., direction 108d1), the multidirectional sensor 108s1 may provide, report, or transmit sensor data to the processor 112 for analysis. The processor 112 may then execute its computing instructions to determine which region the sensor data belongs to, for example, region 108z1 for direction 108d1. In a further embodiment, when 108j1 is moved in direction 108d3, the multidirectional sensor 108s1 may provide, report, or transmit sensor data to the processor 112 for analysis, and the processor 112 may execute its computing instructions to determine that the sensor data belongs to area 108z3. In this way, the processor 112 may determine whether the sensor data belongs to any of the given areas (e.g., areas 108z1 to 108z8). Such area information and / or determination may then be used to drive the robot 100 (e.g., by moving the robot 100 within the environment 800) or to operate it in other ways.
[0050] Furthermore, for each sensor, the sensor data for each sensor may be based on the position of the sensor relative to the robot 100 and / or its body 102. For example, the multidirectional sensor 108s1 may be positioned on the side of the robot, and the processor 112 executes a programming instruction that takes into account the position of the multidirectional sensor 108s1 relative to the robot 100 and / or its body 102, in addition to other factors such as the influence of actuator 106a (and / or a part thereof) on the multidirectional sensor 108s1 based on the position of actuator 106a, the material properties of actuator 106a, and / or the overall mechanism of these components on the multidirectional sensor 108s1, configuration, structure, or otherwise based on the direction of movement of the joystick 108j1.
[0051] Figures 10A to 10C illustrate exemplary sensors that may be used in addition to, or as alternatives to, analog and / or joystick sensors as described with respect to Figures 9A and 9B of this specification.
[0052] Figure 10A illustrates exemplary magnetic-based multidirectional sensor configurations 1000 in various embodiments disclosed herein. In the embodiment of Figure 10A, a magnet 108m is attached to the joystick 108j1 of the multidirectional sensor 1002s1. In such embodiments, the multidirectional sensor 108s1 includes a magnetic field sensor such that one or more magnets (e.g., magnets 106m1 to 106m3) are positioned on the outer perimeter 102op (e.g., bumper 104) of the robot 100 to provide magnetic signals. In such embodiments, the magnetic field sensor (e.g., multidirectional sensor 108s1) of the magnetic-based multidirectional sensor configuration 1000 generates sensor data based on magnetic signals provided by one or more magnets (e.g., magnets 106m1 to 106m3) when an object collides with the outer perimeter 102op (e.g., bumper 104) of the robot 100. For example, as shown in Figures 2A and 2C, magnets 106m1 to 106m3 are positioned on the surface of the robot 100 (e.g., the inner surface or partially embedded surface of the bumper 104) to provide magnetic signals so that when the bumper 104 is struck by a given object, the magnets move towards or away from the joystick 108j1 and magnet 1002m. A magnetic field sensor (e.g., a multidirectional sensor 108s1) can then generate sensor data based on the magnetic signals for reception by the processor 112. More generally, the magnets constituting the magnetic field can be positioned at various locations on the robot 100. For example, the magnetic field sensor may be on or inside the robot body together with magnets on the outer circumference 102op of the robot body (e.g., magnets on the bumper 104 as shown in Figure 2A), or alternatively, the magnetic field sensor may be on the bumper structure together with magnets (not shown) inside the robot body 102.
[0053] Figure 10B illustrates exemplary Hall effect-based multidirectional sensor configurations 1050 according to various embodiments disclosed herein. As shown in Figure 10B, the multidirectional sensor 108s1 may comprise a Hall effect sensor. Generally, the Hall effect sensor (e.g., multidirectional sensor 1050s1) of the Hall effect-based multidirectional sensor configuration 108 may comprise a type of transducer configured to detect the presence or absence of a magnetic field. The magnetic field may be generated by one or more magnets (e.g., magnets 106m1-106m3) positioned on the outer periphery 102op (e.g., bumper 104) of the robot 100 to provide the magnetic multidirectional sensor 108s1, which may detect the generation of a voltage difference (i.e., Hall voltage) across the conductor or semiconductor of the multidirectional sensor 108s1 when exposed to the magnetic field. The voltage is proportional to the strength of the magnetic field and can be measured as an output signal. The output signal may include sensor data that can be provided to the processor 112 for analysis and processing to move or navigate the robot 100 as described herein (for example, data that can be interpreted as sensor data or can generate sensor data).
[0054] Figure 10C illustrates exemplary time-of-flight (ToF) based multidirectional sensor configurations 1075 according to various embodiments disclosed herein. Figure 10C illustrates a ToF sensor 116 as a multidirectional sensor. The ToF sensor 116 measures the distance between the ToF sensor 116 and an object (e.g., a bumper 104) by determining the time it takes for an optical signal or laser pulse to travel to the object and return to the sensor. More generally, a ToF sensor operates on the principle of measuring the time it takes for light to travel a given distance. A given ToF sensor emits an optical signal, such as a laser pulse or an infrared beam, and then measures the time it takes for the signal to reflect back to the sensor. By using a well-known value for the speed of light, the ToF sensor (e.g., the ToF sensor 116) can calculate the distance to an object. The ToF sensor 116 can then use information about the reflected light to generate 3D sensor data defining the object to which the light was reflected.
[0055] As shown in Figure 10C, the multidirectional sensor 116 is configured to send and receive signals (e.g., light represented by a field of view cone) to and from the inner surface of the robot 100 (e.g., the bumper 104). The surface (e.g., the bumper 104) may change angle or otherwise deform when it comes into contact with an object (e.g., an obstacle 804) in the environment (e.g., environment 800). For example, if the bumper 104 moves or deforms when the robot 100 collides with an object (e.g., an obstacle 804), surface 104t1 represents the surface of the bumper 104 at a first time, and surface 104t2 represents the surface of the bumper 104 at a second time. The ToF sensor 116 can detect light reflected from the bumper 104 and generate 3D sensor data associated with the amount and direction of the movement or deformation of the bumper 104. Such 3D sensor data can then be provided to the processor 112 for processing and / or analysis as described herein. In other words, in some embodiments, the sensor data includes three-dimensional (3D) sensor data detected and generated by ToF sensors (e.g., ToF sensor 116) on one or more inner surfaces of the robot body (e.g., one or more inner surfaces of the bumper 104). In such embodiments, the 3D sensor data may define the distance of one or more inner surfaces of the robot body to the ToF sensors that the processor 112 can use to determine the influence or movement of a given surface area and then move or navigate the robot 100 in response.
[0056] Robot Navigation Strategy Robotic cleaning may include a navigation strategy implemented by the robot (e.g., robot 100) executing algorithms or computing instructions stored in its memory (e.g., memory 114). In various embodiments, a robot configured for cleaning and / or navigation comprises a body (e.g., robot body 102) having a chassis (e.g., chassis 102c) and cleaning elements (e.g., cleaning elements 402). The robot may also include motors (e.g., motor 254m1 and / or motor 254m2) configured to move the robot (e.g., robot 100) within an environment (e.g., environment 800).
[0057] The robot may further include sensors. The sensors may include force-based sensors (e.g., analog sensors or joystick sensors as described herein with respect to Figure 9A and / or Figure 10A). However, it should be understood that the sensors may also include different sensor types, including, in non-limiting embodiments, magnetic-based sensors (e.g., magnetic field or Hall effect sensors as described herein with respect to Figures 10A and 10B). Additionally or alternatively, the sensors may include image-based sensors or light-based sensors (e.g., ToF sensor 116) as described herein with respect to Figure 10C.
[0058] The robot may further include a processor (e.g., processor 112) communicatively coupled to the sensors and computer memory (e.g., memory 114) communicatively coupled to the processor. Computing instructions, when executed by the processor (e.g., processor 112), may cause the processor to navigate or change the path of the robot within the environment (e.g., environment 800), for example, as described herein with respect to Figures 11A to 13. The robot is configured to maintain or maximize forward movement or forward direction of movement so that maneuvering, changing course, or other navigation strategies enhance cleaning efficiency by minimizing particle fall (i.e., debris fall). Forward movement or forward direction of movement allows the cleaning element 402 (e.g., its cleaning pad) to capture and push debris in a continuous direction so that debris is held within the pad (e.g., cleaning pad 402p). Similarly, the navigation strategy minimizes any backward movement or reverse direction in order to prevent or minimize backward movement or reversal of direction that could cause the cleaning element 402 (e.g., equipped with its cleaning pad 402p) to experience debris or particle fall.
[0059] Figure 11A illustrates a coverage diagram 1100 showing exemplary navigation or movement of a robot (e.g., robot 100) in an environment in various embodiments disclosed herein. In particular, Figure 11A shows a coverage plot or coverage diagram showing the path that the robot (e.g., robot 100) has moved or navigated in a given environment. For example, the environment may include or represent a top view of environment 800. In various embodiments, including the example in Figure 11A, the robot (e.g., robot 100) operates in different modes related to cleaning different areas of environment 800. For example, the robot (e.g., robot 100) may operate to clean one or more edges (e.g., walls) of environment 800, for example, as indicated by forward movement 1110f. In a further embodiment, a robot (e.g., robot 100) may be operated to clean a fill area 1100fz, which may include an edge region of the environment (e.g., the center or central region of environment 800), which may be represented by a region indicated for, for example, forward movement of the robot (e.g., forward movement 1106f1 to 1106f13).
[0060] In the embodiment shown in Figure 11A, the environment is defined or mapped according to Y position 1102 and X position 1104, which define the movement of the robot within the environment 800. While the positions are measured in millimeters (mm), it should be understood that different position values and / or measurements may be used to identify the robot's position within a given environment.
[0061] As shown in the embodiment of Figure 11A, the robot 100 moves in at least one embodiment in a zigzag pattern, or alternatively in a reciprocating pattern including forward movement 1106f1, forward movement 1106f2, etc., including forward movement 1106f13. However, it should be understood that different movement patterns are intended herein. Each of the forward movements (e.g., forward movements 1106f1 to 1106f13) includes a forward or alternative forward movement of the robot (e.g., robot 100) relative to a cleaning element (e.g., cleaning element 402), the cleaning element 402 being positioned within the front portion of the robot 100. In this way, the robot (e.g., robot 100) moves forward, thereby cleaning the center or central portion of the environment 800. Figure 11A also shows exemplary backward movements 1106b1, 1106b2, and 1106b13 that occurred before or after forward movements 1106f1, 1106f2, and 1106f13. That is, backward movements 1106b1 to 1106b13 illustrate an example where the robot (e.g., robot 100) moved backward relative to its cleaning element (e.g., cleaning element 402) to perform a turn or maneuver to initiate a transition from one forward movement to another (e.g., forward movement 1006f1 to 1006f2).
[0062] Figure 11A further illustrates the navigation or movement of a robot (e.g., robot 100) that includes an edge-following algorithm or other wall-following algorithm. This is illustrated, for example, by forward movement 1110f and backward movement 1110b. As shown in Figure 11A, robot 100 follows the edge (e.g., a trim plate or other wall or obstacle) of the edge 1110e of the environment (e.g., environment 800). Robot 100 moves forward relative to its cleaning element (e.g., cleaning element 402) (e.g., forward movement 1110f), thereby cleaning the vicinity of or along the edge (e.g., a wall) 1110e. When robot 100 approaches a corner 1110c (e.g., a corner of the environment such as two adjacent walls), robot 100 rotates to continue moving forward (x-position direction) relative to the wall, or engages in or performs backward movement 1110b to change its direction in any other way. In this way, the robot 100 can clean the periphery of the environment along one or more edges to ensure that cleaning, disinfection, or other improvements are carried out not only with respect to the center of the environment (e.g., forward movement 1106f1~1106f13) but also with respect to the edges of the environment (e.g., environment 800).
[0063] To achieve forward and / or backward movement as illustrated in Figure 11A (e.g., forward movement 1106f1-1106f12 and 1100f, backward movement 1106b1-1106b13 and 1110b), the processor 112 of the robot 100 executes computing instructions stored in memory 114. When executed, the computing instructions cause the processor 112 to operate the motors (e.g., motor 254m1 and / or motor 254m2) to drive the robot 100 forward relative to the cleaning element (e.g., cleaning element 402) (e.g., forward movement 1106f1-1106f12 and 1100f). Furthermore, when executed, the computing instructions cause the processor 112 to receive sensor data from the sensors (e.g., multidirectional sensor 108s1 and / or multidirectional sensor 108s2). The sensor data may indicate, for example, objects in the environment (e.g., environment 800) relative to the robot 100 when the robot 100 collides with or otherwise interacts with an obstacle 804 such as furniture or a wall in the environment. Furthermore, when the computing instruction is executed, it causes the processor 112 to operate motors (e.g., motor 254m1 and / or motor 254m2) based on the sensor data, causing the robot (e.g., robot 100) to change its course while maintaining a forward direction relative to the cleaning element (e.g., cleaning element 402). Thus, the robot 100 may experience an increase in the amount of forward movement compared to backward movement (e.g., backward movement 1106b1~1106b13 and 1110b).
[0064] In this way, the cleaning element 402 can hold onto or otherwise collect debris as the robot 100 moves. In particular, in such an embodiment, the robot 100 that moves the cleaning element 402 is configured to hold onto or collect debris 1406 (as shown, for example, in Figure 14) when the robot 100 moves in a forward direction (e.g., forward movement 1100f1 to 1106f12 and 1106f). In contrast, when the robot 100 moves backward (e.g., backward movement 1106b1 to 1106b13 and 1110b), it may experience loss or dropping of debris. Therefore, the algorithm implemented by the processor 112 attempts to maximize the holding and collection of debris 1406 by maximizing the total amount of forward movement experienced by the robot 100 for any given cleaning period. For example, in at least some embodiments, the robot 100 is configured to hold or collect at least 90 percent of the total amount of debris 1406 acquired by or otherwise experienced by the cleaning element 402 as the robot moves forward in a given environment (e.g., environment 800) as the cleaning element 402 moves. The given total amount of debris may be the amount of debris acquired by or otherwise experienced by the robot during the robot's cleaning period. The cleaning period may include, in non-limiting embodiments, the robot's operating cycle, the time to clean a given environment (e.g., a room), and / or a given duration of cleaning (e.g., 10 minutes, 15 minutes, or some other unit of time for cleaning).
[0065] Figure 11B illustrates flowcharts of the navigation algorithm 1112 in various embodiments disclosed herein. The navigation algorithm 1112 may be implemented to maximize the total forward movement experienced by the robot 100 for any given cleaning period, for example, as described in Figure 11A or elsewhere herein. The algorithm 1112 may include programming instructions (e.g., Java® or C++ instructions) stored in memory 114 and selected (e.g., by the user or automatically selected by the processor 112) to be executed by the processor 112 to implement the functions shown in Figures 11A to 11E herein.
[0066] For example, as shown in Figure 11B, the navigation algorithm 1112 starts in a dormant state 1112a (for example, the robot 100 is turned off, charging, or otherwise in a low-power mode). In block 1112b, the processor 112 determines whether user interaction has occurred (for example, via activation of the robot via a switch (e.g., switch 105s), a button (e.g., button 105b), or other means for activating the robot 100). In block 1112c, the user action causes the robot 100 to enter an edge state, which causes the robot to clean the edges of the environment (for example, as described with respect to Figure 11C or elsewhere in this specification). In block 1112h, the robot 100 may enter a fill state (area cleaning state) (as described herein with respect to Figure 11E). Alternatively, in block 1112d, robot 100 performs an interaction with the obstacle (for example, by detecting collisions with the obstacle via its bumper 104 and corresponding sensors (multiple) (e.g., multidirectional sensor 108s1)). In block 1112e, if robot 100 is able to continue (not in a malfunctioning state), robot 100 continues cleaning the edges (block 1112f). The robot continues to monitor for changes in state (block 1112g). For example, robot 100 may enter a fill state (block 1112h) in which robot 100 cleans the center or central area of the environment. In block 1112i, robot 100 performs an obstacle interaction (for example, by detecting collisions with the obstacle via its bumper 104 and corresponding sensors (multiple) (e.g., multidirectional sensor 108s1)). In block 1112j, if the robot 100 is able to continue (if obstacle interaction is successful 1112e2, for example, not in a disabled state), the robot 100 continues to clean the center of the environment or other open spaces (block 1112k). The robot 100 continues to monitor for changes in state (block 1112k).
[0067] In some cases, the robot 100 enters a non-operational state (1112l). The non-operational state may be determined by an inertial measurement unit (IMU) sensor, as described herein. The IMU sensor may provide IMU sensor data to the processor 112 so that the processor 112 can perform a non-operational assessment (block 1112m). The non-operational assessment (block 1112m) may include determining the inclination of the robot in three-dimensional space. For example, the non-operational assessment (block 1112m) may include the processor 112 determining whether the leading edge of the robot is over an object (e.g., a vent) that the robot is maneuvering. More generally, a malfunction assessment (block 1112m) may include selecting a mitigation technique (1112n) which involves determining the position of the robot 100 and its body 102 relative to its wheels (e.g., 254w1, 256w2) and determining how to operate its motor(s) (e.g., motor 256m1) to mitigate the malfunction (e.g., to unmallete the robot). In some cases, this requires a reverse movement (block 1112) in which the robot must move backward to unmallete. The reverse movement may be minimized to maximize forward movement and thus avoid debris falling as described herein. This may include a stepwise alternative procedure in which the robot attempts to minimize the reverse movement (in small increments of reverse movement) until the robot is unmallete, and then repeatedly attempts forward movement. In any case, once mitigation and / or reversal are complete, robot 100 will again attempt to determine its state (block 1112p), and robot 100's algorithm will continue to loop as robot 100 navigates and cleans the environment.
[0068] Figure 11C illustrates a flowchart of the edge navigation algorithm 1120 in various embodiments disclosed herein. In the example of the navigation algorithm 1120, Figures 11C–11E refer to robot 100a (as shown in Figure 11D). However, it should be understood that, in addition to or instead of robot 100a, robot 100 (or other robots disclosed herein) can also perform the navigation algorithm 1120 as described herein. Referring to Figure 11D, robot 100a has the same or similar components as robot 100, except that robot 100a has a single sensor 108xs1 and an actuator 108xa configured to provide force to sensor 106xs1, the force may be generated by an obstacle colliding with robot 100a's bumper 104x. The bumper 104x has several sections classified relative to a target wall 1141, to which robot 100a may move, parallel to it, or otherwise. As shown in Figure 11D, the bumper 104x includes the following areas: far side area (the side area furthest from the target wall 1141), far corner area (the corner area furthest from the target wall 1141), far front area (the front area far from the target wall 1141), intermediate front area (the front area central to the target wall 1141), near front area (the front area close to the target wall 1141), near corner area (the corner area closest to the target wall 1141), and near side area (the side area closest to the target wall 1141). However, it should be understood that additional areas, fewer areas, or different areas can be defined for the bumper 104x (or bumper 104). The area is defined by any one or more of the following: a given sensor or set of sensors, the position(s) of the sensor(s) relative to the bumper, the mounting to the bumper by a given actuator, and / or how and to what extent the sensor data is received and processed by the processor 112. By using one or more of these attributes or features, the processor 112 can determine which area of a given bumper has been hit or struck.
[0069] Referring to Figure 11C, the navigation algorithm 1120 includes a state diagram in which the robot (e.g., robot 100a) operates according to various changing states, navigating or otherwise moving the robot (e.g., robot 100a) within an environment (e.g., environment 800) in various directions or in various ways. In various embodiments, the navigation algorithm 1120 illustrates an algorithm that is executed or performed by the processor 112 to perform the movement of the robot (e.g., robot 100a) as described herein (e.g., for any of Figures 11A, 12A, or 13). The navigation algorithm 1120 includes a block diagram or flowchart showing states and computing functions (e.g., substates) that may be executed by the processor 112 based on the current state of the robot. In various embodiments, computing instructions stored in memory 114 may include computing functions (e.g., substates), for example, the computing functions (e.g., substates) are implemented or performed by the processor 112 as part of the computing instructions.
[0070] As shown in Figure 11C, the navigation algorithm 1120 starts in an EDGE state 1122 which defines the movement of the robot (e.g., robot 100a) along an edge (e.g., a wall or trim plate). The EDGE state triggers the processor 112 to execute a DRIVE_FORWARD function (sub-state) 1124, which may activate motors (e.g., motors 254m1 and / or 254m2) to drive the robot (e.g., robot 100a) and move it in the forward direction (e.g., forward movement 1110f as shown with respect to Figure 11A). As the robot moves in the forward direction, the processor 112 monitors its interaction with its outer perimeter 102op (e.g., bumper 104). The interaction may be determined based on the effective area 1126 (e.g., the area of bumper 104x as described herein). If there is no interaction, the robot's processor 112 executes a DriveAlongConstantHeading (DriveAlongConstantHeading) function 1128 to continue the current path.
[0071] When a robot (e.g., robot 100a) collides with an obstacle in the environment, the processor 112 analyzes the effective area 1126 relative to the bumper 104x to determine whether a collision has occurred and, in various embodiments, which area was hit (e.g., any one or more of the central front, distal side, proximal corner, etc., as shown for robot 100a in Figure 11D in a non-limiting embodiment). As shown in Figure 11C, the processor 112 may then execute a BACK_OUT substate (function) 1130. The BACK_OUT substate (function) 1130 may determine whether an encoder threshold has been met. The BACK_OUT substate is not limited to moving the robot backward in a straight line; that is, backward movement is not limited to moving backward in a straight line (but may include this function). However, it should be understood that different backward movement directions, shapes, and pivots are intended herein. For example, different directions or axes of backward movement may occur depending on the area that the robot collided with or otherwise encountered. In some cases, the BACK_OUT substate may include forward movement. The encoder threshold may define whether the robot 100a has collided with a wall (if multiple forward areas of the bumper 104x are triggered). Otherwise, the processor 112 may execute the MoveBackwardsUsingEncoders function 1134 to move backward using the encoders to move backward away from the surrounding collision obstacle. Otherwise, the TURN_TO_NEXT substate (function) 1136 may be executed by the processor 112, and the robot 100a will then begin to turn towards the wall 1138. The processor 112 may then drive one or more motors (e.g., motor 254m1 and / or motor 254m2) and continue to check the turning state 1140 until the robot 100 has completed its turn. If the turn is not complete, the processor 112 executes turnToHeading 1144 until the turn is performed.When executed, the processor 112 switches the state of the robot 100a and executes the ALIGN WITH WALL substate 1142, causing the robot 100a to align itself parallel to the wall in its forward direction.
[0072] Figure 11D illustrates a further flowchart portion 1141 of the edge navigation algorithm 1120 of Figure 11A, according to various embodiments disclosed herein. The flowchart portion 1141 illustrates an algorithm for aligning a robot (e.g., robot 100a) to a second wall after colliding with or otherwise interacting with a first wall, the walls may be perpendicular to each other. From the implementation of the ALIGN_WITH_WALL substate 1142, the processor 112 rotates robot 100a by driving motors (multiple) (e.g., motor 254m1 and / or motor 254m1) while monitoring the effective bumper area 1150. If the far-forward area 1152 is detected, the SC speed (i.e., the speed of the motor closest to the target wall 1141) is kept constant, and the SF speed (i.e., the speed of the motor furthest from the target wall 1141) is reduced (e.g., as indicated by a minus sign) to cause the robot 100a to pull its rear end out and push its near-corner side forward. If the intermediate area 1154 is detected, both the SC speed and SF speed are reduced to cause the robot 100a to move backward. If the near-forward area 1156 is detected, the SC speed is increased (e.g., by a factor of 40%), and the SF speed is decreased to cause the robot 100a to pull its far wheel out slightly and push its near-corner side forward. If the near-forward area 1156 is detected, the SC speed is increased (e.g., by a factor of 40%), and the SF speed is decreased to pull the near-corner side forward. If a proximity corner area 1158 is detected, the SC speed is kept constant and the SF speed is reduced. If a non-functioning area 1159 (no area) is detected, the SC speed is increased (for example, by a factor of 75%) and the SF speed is kept constant to drive the robot 100a toward the target wall. If a proximity side area is detected, the processor 112 switches to executing the wall-following (WALL_FOLLOW) sub-state function 1160. In this state, the robot is considered ready to rotate sufficiently toward the new wall for proximity side area detection and to move toward following (i.e., cleaning along) the newly positioned wall.Alternatively, in some embodiments, instead of implementing the WALL_FOLLOW sub-state function 1160, a different function may be performed to prevent the robot 100a from following a wall (or any other object with which the robot 100 interacts).
[0073] Figure 11E illustrates a further flowchart portion 1161 of the edge navigation algorithm 1120 of Figure 11A, according to various embodiments disclosed herein. In particular, Figure 11E illustrates the implementation of the WALL_FOLLOW substate function 1160. As illustrated in Figure 11E, if a side area 1162 associated with the bumper 104x is not detected or is otherwise invalid as determined by sensor data (e.g., no nearby or far side area), the processor 112 implements a DriveAlongWall function that moves the robot parallel to or generally laterally to the wall via its motor(s) (e.g., motor 254m1 and motor 254m2). If the wall count 1166 is satisfied, the processor 112 can implement or switch to the BACK_OUT substate (function). Otherwise, the processor 112 implements or switches to the FILL state 1169. FILL condition 1169 defines a condition in which the robot operates in the center or middle of an environment (e.g., fill area 1100fz) to clean the edge region of the environment (e.g., environment 800).
[0074] Figure 11F illustrates additional coverage figure 1170 showing further exemplary navigation or movement of a robot in an environment in various embodiments disclosed herein. In such embodiments, computing instructions, when executed by processor 112, are configured to actuate motors (e.g., motor 254m1) to drive the robot in an angled pattern. In various embodiments, the angled pattern includes driving the robot at angles from 10 to 60 degrees. In the embodiment of Figure 11A, robot 100 employs a navigation strategy that performs or otherwise employs different edge and fill states to clean a given environment (e.g., environment 800). Alternatively, processor 112 implements instructions that cause robot 100 to drive in an angled (e.g., 45-degree) pattern that can clean the environment by driving in different directions of movement, or in other patterns for cleaning different areas of the environment. The navigation or movement algorithm implemented for Figure 11F is, in at least some respects, an alternative or different algorithm that the robot (e.g., robot 100) may be configured to implement via its processor 112 compared to the algorithms illustrated and described for Figures 11A to 11E. For example, the algorithm implemented for Figure 11F may include programming instructions (e.g., JAVA® or C++ instructions) stored in memory 114 and selected (e.g., manually by the user or automatically by the processor 112) to be executed instead of the algorithms illustrated and described for Figures 11A to 11E.
[0075] As shown in Figure 11F, the robot 100 moves in an angled pattern and changes its direction in an angled modality when it collides with an obstacle. For example, the robot 100 moves forward 1170f1 and collides with wall 1172. When the robot 100's edge 1170rt1 collides with wall 1172, it changes its direction by an angle of approximately 45 degrees and moves away from wall 1172 in the new angular direction by forward movement 1170f2. That is, in such an embodiment, the angled pattern includes a first forward movement (e.g., forward movement 1170f1) and a second forward movement (e.g., forward movement 1170f2), where the first forward movement is not parallel to the second forward movement and is generally not parallel. In another embodiment, the robot 100 moves forward 1170f3 and collides with wall 1174. When the robot 100's edge 1170rt2 collides with the wall 1174, it changes its direction by an angle of approximately 10 degrees and moves away from the wall 1174 in the new angular direction by a forward movement 1170f4. In yet another embodiment, the robot 100 moves by a forward movement 1170f5 and collides with the wall 1176. When the robot 100's edge 1170rt3 collides with the wall 1176, it changes its direction so as to move or pivot in the new angular direction by a forward movement 1170f6 that is parallel or substantially parallel to the forward movement 1170f5 and moves away from the wall 1176. That is, in such an embodiment, the angled pattern includes a first forward movement (e.g., forward movement 1170f5) and a second forward movement (e.g., forward movement 1170f6), where the first forward movement is parallel or generally parallel to the second forward movement. In non-limiting embodiments, parallel in general may mean that the first forward movement and the second movement deviate from each other by an angle of less than 5 degrees. In these ways, the robot 100 can maintain its forward movement and avoid dropping debris, as described herein. In addition, by implementing this algorithm, the environment may be cleaned without the need for the robot to implement multiple cleaning states that target specific areas or regions of the environment.
[0076] Figure 12A illustrates exemplary navigation or movement of a robot (e.g., robot 100) in an environment (e.g., environment 1200) according to various embodiments disclosed herein. In the embodiment of Figure 12A, environment 1200 is a bathroom including several obstacles, including a toilet 1202, a vent 1204, and a trash can 1206, in a non-limiting embodiment. As shown in Figure 12A, robot 100 is configured to minimize debris dropping (e.g., when debris falls from or separates from the cleaning element 402) by implementing a forward-direction navigation strategy, for example, represented by forward movement 1210f. Forward movement (with respect to forward movement 1210f) is similarly shaded in Figure 12A to illustrate the navigation strategy of robot 100 with forward direction within environment 1200. In one exemplary embodiment, when the processor 112 receives sensor data from a sensor (e.g., a multidirectional sensor 108s1) indicating that the robot is in collision with an obstacle (e.g., obstacle 804), it may execute a computing instruction (e.g., one stored in memory 114) to stop or lock one or more wheels of the robot (e.g., wheel 256w1 and / or wheel 256w2).
[0077] Similarly, Figure 12A shows that the navigation strategy of robot 100 to minimize debris fall involves minimal backward movement 1210b that could result in debris loss. Backward movement (with respect to backward movement 1210b) is similarly shaded in Figure 12A to illustrate the navigation strategy of robot 100 involving backward movement within the environment 1200. As shown, robot 100 can navigate through, between, around and behind each of obstacles, including, for example, toilet 1202, vent 1204, and trash can 1206, with minimal backward movement (e.g., backward movement 1210b), thereby avoiding debris fall or other forms of debris loss by continuing to push the debris forward. In one exemplary embodiment, when the processor 112 receives sensor data from a sensor (e.g., a multidirectional sensor 108s1) indicating that a collision has occurred between the robot and an obstacle (e.g., obstacle 804), it may execute a computing instruction (e.g., stored in memory 114) to reverse one or more of the robot's wheels (e.g., wheels 256w1 and / or wheels 256w2) by a minimum degree. In addition, the robot's size and / or maneuverability (e.g., turning radius) allows the robot to cover a high proportion of the environment, particularly complex environments. As shown, even when the robot makes contact with or otherwise senses the vent 1204, only a small area 1204a is not covered due to the robot's small turning radius, maneuverability, and / or the implementation or strategy of navigation in other ways.
[0078] In various embodiments, memory 114 may store motion profiles that define the robot's motion behavior. Computing instructions, when executed by processor 112, may be configured to access the motion profile and adapt or otherwise configure the robot's operation to reduce debris fall from the cleaning element in response to obstacle interactions with the robot. Such configurations may, in non-limiting embodiments, include changing the speed of the robot's impacts by updating the speeds of motors (e.g., motor 254m1 and / or motor 254m2). For example, reducing or decelerating the speed may reduce the intensity of the impacts the robot 100 has with obstacles in the environment, thereby reducing debris fall. In some embodiments, the motion profile may be adjusted to increase or decrease the speed to increase or decrease the force(s) and / or direction(s) of the impacts experienced by the robot 100 through its bumper 104, for example. For example, the motion profile may include setting the robot's maximum negative acceleration value (e.g., deceleration value) to 33.30 millimeters per second squared (but greater than zero) or less to prevent or reduce debris fall. Additionally or alternatively, the motion profile may include setting the robot's maximum acceleration value to 9.77 millimeters per second squared (but less) or less to prevent or reduce debris fall. These settings may cause the processor 112 to drive or operate motor 254m1 and / or motor 254m2 of the motor(s) so as not to exceed these maximum values. These values are low enough to prevent debris from falling when the robot collides with an obstacle in the environment.
[0079] In another embodiment, computing instructions, when executed by processor 112, may be further configured to access an operational profile and adapt or otherwise configure the operation of robot 100 to recapture, recapture, or recollect any debris that has fallen after an obstacle interaction. For example, sensors (e.g., multidirectional sensors 108s1 and / or 108s2) may transmit sensor data to processor 112, which may, based on an analysis of the sensor data, determine that an impact event has occurred or occurred (e.g., the bumper is moving or has moved). Processor 112 may then access the operational profile and execute instructions to drive robot 100 across the collision area in the forward direction via its motors (or motors 254m1 and / or motors 254m2) to allow a cleaning element (e.g., cleaning element 402) to recapture any debris or particles. In some embodiments, the motion profile may be adjusted to generate a recapture navigation strategy only in response to specific forces or directions of impacts experienced by the robot 100 through its bumper 104, for example.
[0080] Figure 12B illustrates exemplary navigation or movement of a robot (e.g., robot 100) for recapturing, recapturing, or recollecting debris after interaction with an obstacle. Robot 100 is shown at various times cleaning an environment (1250) which may be the same environment as in Figure 12A. In the embodiment of Figure 12B, robot 100 moves in a forward movement 1254 and its bumper (e.g., bumper 104) collides with a wall 152. Processor 112 then accesses the motion profile and executes instructions to drive the robot forward via its motor(s) (e.g., motor 254m1 and / or motor 254m2) across the collision area 1253 (e.g., wall 1252 or its vicinity) so that a cleaning element (e.g., cleaning element 402) may recapture any debris or particles resulting from the collision with wall 1252. The robot 100 may change its course to continue its forward movement 1256 along the edge of the wall 1252. In this way, the processor 112 that runs or accesses the motion profile may perform immediate particle recapture or recollection after a collision with an obstacle (e.g., a wall) in the environment (e.g., environment 1250). In this way, the collision area 1253, or otherwise, the area in front of the robot 100 where inversion may have occurred, is then moved forward to cause debris recapture as the robot 100 moves forward 1256.
[0081] In an additional embodiment, computing instructions, when executed by processor 112, may be configured to access an operational profile and adapt the operation of the robot to rotate to prevent debris from falling from the cleaning element, or otherwise adapt the operation of the robot. For example, processor 112 may access the operational profile to specify how much the robot 100 can orbit or spin in order to reduce or prevent debris from falling from the cleaning element 402 of the robot 100. In some embodiments, the operational profile may be adjusted to cause the robot 100 to rotate, or otherwise spin only to a specific degree or angle in order to eliminate or prevent debris from falling from the cleaning element (e.g., cleaning element 402).
[0082] Figure 12C illustrates exemplary navigation or movement of a robot (e.g., robot 100) to minimize or prevent debris fall while the robot is turning. For example, as shown in Figure 12C, robot 100 turns in an arc pattern 1272, and the turning is achieved by processor 112 acting motor 254m1 and / or motor 254m2 of the motor(s), and thus changing the wheel speed difference(s) along with the speed, while maintaining forward movement of the robot in the positive direction (without reversing). For example, as shown, the robot can perform a 180-degree turn (e.g., arc pattern 1272), in which case processor 112 performs the turn by acting the motor associated with the wheel forward 1280 and locking (or keeping stationary) the opposite wheel. Furthermore, the processor 112 keeps the motors associated with the wheels 1282 and 1284 acting in the forward direction, respectively, and keeps the opposite wheel locked (or stationary). In some embodiments, the opposite wheel is not locked but is maintained at a reduced speed compared to the forward direction(s) 1282 and 1284 so that the robot turns in the direction of the arc pattern 1272. Finally, when the robot has turned sufficiently (e.g., 180 degrees in the embodiment of Figure 12C), both wheels are set to have equal speeds (e.g., in the forward direction 1286 and 1287), thereby allowing the robot to be driven in the forward direction. In this way, the motion profile for turning prevents debris from falling, as the robot maintains its forward movement and minimizes or prevents inversion during turning.
[0083] Figure 13 illustrates exemplary navigation or movement of a robot (e.g., robot 100) in an environment (e.g., environment 1300) according to various embodiments disclosed herein. In the embodiment of Figure 13, environment 1300 is the same as environment 1200 in Figure 12A, and environment 1300 includes a bathroom with several obstacles, including a toilet 1202, a vent 1204, and a trash can 1206, in a non-limiting embodiment. As shown in Figure 13, robot 100 is configured to minimize debris dropping (e.g., when debris falls from or separates from the cleaning element 402) by implementing a forward-direction navigation strategy, for example, represented by forward movement 1310f. Forward movement (with respect to forward movement 1310f) is similarly shaded in Figure 13 to illustrate the navigation strategy of robot 100 with forward direction within environment 1300. Similarly, Figure 13 shows that the navigation strategy of robot 100 to minimize debris fall involves minimal backward movement 1310b that could result in debris loss. Backward movement (with respect to backward movement 1310b) is similarly shaded in Figure 13 to illustrate the navigation strategy of robot 100 involving backward direction within the environment 1200. As shown, robot 100 can navigate through, between, around and behind each obstacle, such as the toilet 1202, vent 1204, and trash can 1206, while allowing some backward direction (e.g., backward movement 1210b), but can also avoid debris fall or other forms of debris loss by continuing to push the debris forward. In the embodiment shown in Figure 13, the robot 100 is configured to move its cleaning element (e.g., cleaning element 402) such that when the robot moves forward, for example, in a forward direction related to the cleaning element (e.g., cleaning element 402), it holds or collects at least 60 percent of the total amount of debris that is captured by or otherwise experienced by the cleaning element.
[0084] In some embodiments, the total distance traveled can be determined by comparing the total amount of forward movement with the total amount of backward movement, from which the ratio of forward and / or backward movement or movement can be determined. The processor 112 may execute computing instructions and control the amount of allowable backward movement. For example, the processor 112 implementing instructions stored in memory 114 may cause the processor 112 to actuate motors (e.g., motors 254m1 and / or motors 254m2) based on sensor data (e.g., collected by sensors such as multidirectional sensor 108s1) to cause the robot (e.g., robot 100) to move backward relative to the cleaning element (e.g., cleaning element 402) prior to changing its course. In some embodiments, such backward movement may be limited to prevent the robot 100 from experiencing excessive backward movement. For example, in some embodiments, the amount of distance traveled in the reverse direction (e.g., reverse movement 1310b) is set to, for example, 10% or less of the total distance traveled by the robot in the forward direction during the cleaning period. The cleaning period may include the time range over which the robot cleans a given area, room, or other environment. Similarly, in some embodiments, the robot 100 may clean an environment (e.g., environment 800) during the cleaning period, and the cleaning period may include multiple periods. For example, in some embodiments, the period may be defined toward the end of the cleaning period (e.g., the third to last period or the second to last period of the cleaning period). In such embodiments, the period toward the end of the cleaning period may include a lower percentage of reverse movement (e.g., 5% reverse movement) compared to the first period of the cleaning period (e.g., 20% reverse movement). Additionally or alternatively, in such embodiments, a final period toward the end of the cleaning period may be defined. In such embodiments, the final period may not include any reverse movement (e.g., 0% reverse movement) as the robot moves.Restricting the backward movement of the robot during the final or end period reduces debris that the robot would not have the opportunity to recapture during future passages or forward movements, thus providing an overall cleaning period in which the robot can, at some point, override any backward movements previously made during a cleaning period with corresponding forward movements in order to recapture any debris during the cleaning period.
[0085] Furthermore, additionally or alternatively, the processor 112 executing computing instructions may be configured to detect when the robot (e.g., robot 100) is in a disabled state. The disabled state may be determined based on sensor data received by the processor 112, and the processor 112 may, based on the sensor data, activate motors (e.g., motor 254m1 and / or motor 254m2) to maneuver the robot toward a cleaning element (e.g., cleaning element 402) to disengage from the disabled state before changing its course. The disabled state (e.g., disabled state 1112l in Figure 11B) may also be based on sensor data, thereby determining that the robot 100 may move longer in one or more directions.
[0086] In further embodiments, the robot (e.g., robot 100) may additionally or alternatively include a second sensor. The second sensor may include an inertial measuring unit (IMU) sensor. In various embodiments, the IMU sensor may be positioned on the body 102 of the robot to detect a given state, tilt, or otherwise position of the robot in three-dimensional space. The IMU sensor may be used to detect obstacles that do not come into contact with the bumper 104. Such objects may include a vent 1204 (e.g., as shown in Figure 13), and the vent 1204 may have a height or profile low enough to avoid hitting the bumper 104 or otherwise triggering the bumper 104. In such embodiments, the IMU sensor may be used to detect that the robot (e.g., robot 100) has come into contact with an object, even if no sensor data is generated or received based on a collision with the bumper 104. That is, the IMU sensor may be used as a backup or additional sensor that may be used to detect objects that do not engage with the bumper 104. Furthermore, in some embodiments, sensor data received from the IMU sensor (e.g., IMU sensor data) may be formatted, converted, or interpreted by the processor 112 so as to be compatible with sensor data or its associated outputs or inputs typically generated by different sensors or sensor types associated with the bumper 104 (e.g., multidirectional sensor 108s1). In this way, computing instructions can receive data (or associated inputs) in a uniform format or other type, simplifying the computing instructions and enabling them to be reduced and stored in the robot's computer memory. In other words, the IMU sensor can detect edges without a bumper (e.g., bumper 104), and in addition, in some embodiments, sensor data may be provided to the processor 112 in the same way as if such sensor data came from a force sensor (e.g., multidirectional sensor 108s1). The robot may then be controlled in the same or similar way using computing instructions or, in other ways, a computing model.For example, in such an embodiment, the processor 112 executing the computing instructions may be configured to receive IMU sensor data only from the IMU sensor, without receiving sensor data from the sensor. The processor 112 executing the computing instructions may be further configured to convert the IMU sensor data into data or output of the same type as the sensor data of the sensor. The processor 112 executing the computing instructions may be further configured to provide the processor with data or output of the same type to actuate the motor and cause the robot to change its course while maintaining a forward orientation relative to the cleaning element.
[0087] Figure 14 illustrates exemplary debris and its size in various embodiments disclosed herein. For example, as shown in Figure 14, in a non-limiting embodiment, the debris includes rice 1402, dirt 1404, and hair 1406, such that they are distributed on a surface (e.g., a floor) of an environment (e.g., environment 800). However, it should be understood that additional and / or different debris such as sand, salt, and / or other debris types or sizes are contemplated herein. In various embodiments, the debris captured by the cleaning element (e.g., cleaning element 402) is of a predetermined size, such as the size of a grain of rice or the length of a hair. For example, in some embodiments, the size of the debris is about 5.5e-5mm 3 ~15mm 3 That's fine.
[0088] Determining the size and controlling the robot In various embodiments, the size, shape, or other dimensions of the robot (e.g., robot 100) may be configured to enable the robot 100 to operate in a variety of environments or spaces, including small, narrow, or other environments or spaces that are difficult to clean. In non-limiting embodiments, such size and dimension determinations may configure the robot (e.g., robot 100) to move into narrow spaces (e.g., narrow bathroom spaces), get under furniture, drive cleaning elements (e.g., cleaning pads) into corners of environments, and clean the edges of a given environment and / or space almost or completely.
[0089] In such embodiments, the robot (e.g., robot 100) is configured for cleaning. The robot 100 comprises a body (e.g., body 102) and a chassis (e.g., chassis 102c). The robot 100 further comprises a cleaning element (e.g., cleaning element 402). The cleaning element may include a base mounting portion (e.g., a VELCRO® base mounting portion or a grommet base mounting portion) for receiving and holding a disposable hard surface wiping base (e.g., a cleaning pad such as a cleaning pad 402p). The base mounting portion may include a width (402w) that is generally perpendicular to the forward direction of the robot's movement. In some embodiments, the width may be about 13.9 cm or less. However, in alternative embodiments, the width of the base mounting portion may be 11.5 cm or less. This reduced width allows the robot to be made smaller overall, while still allowing the robot's components (e.g., motors 254m1 and 254m2) to fit into the robot's body, and still allowing the wheels to be far enough apart to allow the robot to turn even when it is stationary. For example, this width allows for sufficient torque to be generated to counteract the friction caused by the cleaning element 402 (and / or its cleaning pad 402p) and to rotate the robot in place. Furthermore, in a further embodiment, the width of the base mounting section may be further reduced to 7 cm or less (e.g., 7 cm to 5 cm), which maintains sufficient size for the components to fit into, but also allows for cleaning in very confined spaces, including narrow, cramped, or otherwise difficult spaces or environments, where a larger robot would be difficult to operate, as well as in a non-limiting embodiment.
[0090] The robot (e.g., robot 100) may further include motors configured to move the robot within an environment (e.g., environment 800). The robot (e.g., robot 100) may further include sensors and a processor communicatively coupled to the sensors. The sensors may include any of the sensors described herein (e.g., multidirectional sensor 108s1).
[0091] The robot (for example, robot 100) may further include a set of computing instructions stored in computer memory. The computing instructions may include instructions based on Java®, C++, C#, Python, or other programming language stored in computer memory (for example, as firmware), as described herein. When the computing instructions are executed by the processor, the processor is caused to receive sensor data from the sensor. When the computing instructions are executed by the processor, the robot 100 may further be caused to operate motors based on the sensor data to maneuver the robot 100 in the environment.
[0092] In addition, the size, shape, or otherwise dimensionality of the robot (e.g., robot 100), and the robot's computing instructions can be configured in various ways to enable the robot 100 to maneuver within an environment, particularly in small, narrow, or cramped spaces. For example, in one embodiment, the robot 100 may be configured such that, when the processor executes a computing instruction, the processor causes the robot 100 to maneuver within an environment (e.g., robot 100) by executing a predetermined number of non-repeating or overlapping paths. This is shown, for example, by Figure 11A, where each path (e.g., represented by forward movement 1106f1 to 1106f13) includes 13 paths. In some embodiments, the predetermined number of non-repeating or overlapping paths includes 10 or more paths (as shown, for example, by Figure 11A). For example, each path covers 1 square meter (m²). 2 This may include the floor coverage area of ).
[0093] In additional exemplary embodiments, a robot (e.g., robot 100) may be configured such that, when the processor executes a computing instruction, the processor implements a predetermined speed for each pass, causing the robot to maneuver within the environment. For example, in some embodiments, the predetermined speed may be reduced to lessen the intensity of the robot's impact with obstacles in the environment in order to reduce the amount of debris falling. Furthermore, in some embodiments, the reduction value from the predetermined speed may include values from 0.1 millimeters (mm) per second to 33.30 mm per second. Also, in additional or alternative embodiments, the predetermined speed for each pass may include 100 millimeters / second (or less). That is, for a single pass, in some embodiments, robot 100 may move within 1 square meter (m²), representing the size of a small room area such as a bathroom. 2 It may be configured to clean at a speed of 100 seconds or more across the floor coverage area. However, it should be noted that the given speed may be selected from a range of speeds such as 20 to 250 millimeters / second, as in non-limiting embodiments.
[0094] In a further embodiment, the height of the robot is configured to allow the robot to maneuver under objects, such as low objects or obstacles relative to the ground. In one embodiment, for example, the robot (e.g., robot 100) may have a height of 9 centimeters (cm) or less (e.g., height 502). For example, in such an embodiment, the height may be in the range of 9 cm to 5 cm. In a further embodiment, the height of the robot may be reduced to 7 cm or less, for example, the height is 5 cm to 7 cm. Such a reduction in height allows the robot to enter under or otherwise maneuver under most of the shape of a toilet or other shape. In yet another embodiment, the height of robot 100 may be further reduced to, for example, 5 centimeters or less, for example, 5 cm to 3 cm. Such a configuration reduces the height of a given robot 100 and allows the robot to navigate under low hanging obstacles, such as shelves, toilet pipes, door stops, etc.
[0095] In additional embodiments, the robot body comprises a bumper (e.g., bumper 104) having a corner radius (e.g., corner radius 104cr as shown in Figure 3). In various embodiments, the corner radius of the bumper may range from 0.5 millimeters to 30 millimeters. Such a small corner radius of the robot may allow the bumper, and consequently the cleaning element 402 (e.g., comprising a pad 402p) positioned below, to conform more closely to the edges and / or within the corners of a given environment, thereby enabling thorough cleaning of the environment.
[0096] In yet another embodiment, the cleaning element (e.g., cleaning element 402) of the robot (e.g., robot 100) may have a turning radius. The turning radius may be measured as the distance (e.g., distance 402bd) between the trailing edge (e.g., trailing edge 402) of a portion of the cleaning element (e.g., the pad of cleaning element 402) and the rotation center (e.g., rotation center 400c) of the robot (e.g., robot 100). A small turning radius allows the robot (e.g., robot 100) to rotate and maneuver in small spaces, corners, and other areas with limited space. For example, in some embodiments, the turning radius may be less than 27.5 centimeters.
[0097] In yet another embodiment, the robot body includes a bumper (e.g., bumper 104), the bumper comprising at least a front bumper portion (e.g., front bumper portion 104fp). In such an embodiment, the cleaning element (e.g., cleaning element 402) comprises at least a front cleaning element portion (e.g., front edge portion 402fe). In some embodiments, the distance from the front bumper portion to the front cleaning element portion (e.g., front lateral bumper distance 402fd) includes less than 10 millimeters. The short distance between the cleaning element and the bumper allows the robot to have a maximum, otherwise large surface area for attaching a larger cleaning pad to cover a larger amount of a given floor coverage area.
[0098] In a similar embodiment, the robot body comprises a bumper (e.g., bumper 104) having at least one side bumper portion (e.g., right bumper portion 104rsp and / or left bumper portion 104lsp). In such an embodiment, the cleaning element (e.g., cleaning element 402) comprises at least a side cleaning element portion (e.g., the side of the cleaning pad). In such an embodiment, the distance from the side bumper portion to the side cleaning element portion (e.g., right bumper distance 402rsd and / or left bumper distance 402lsd) includes less than 10 millimeters. With respect to front measurements, the short distance between the cleaning element and the bumper also allows the robot to cover a larger amount of a given floor coverage area by having a larger surface area on the side, which is the maximum for mounting a larger cleaning pad.
[0099] In a further embodiment, the body (e.g., body 102) of a robot (e.g., robot 100) is equipped with a bumper (e.g., bumper 104) positioned at a distance of 2 mm to 10 mm from the body. The distance may be a front lateral bumper distance 402fd, a right bumper distance 402rsd, and / or a left bumper distance 402lsd, or any other distance measured from any part of the body 102 to the bumper 104.
[0100] Additional considerations While the disclosure herein provides detailed descriptions of numerous different embodiments, it should be understood that the legal scope of these descriptions is defined by the terms of the claims listed at the end of this patent and its equivalents. These detailed descriptions should be interpreted as illustrative only and do not describe all possible embodiments, as it would be impractical to do so. Numerous alternative embodiments may be implemented using either the current art or art developed after the filing date of this patent, but such embodiments will still fall within the scope of the claims.
[0101] The following additional considerations apply to the preceding discussion. Throughout this specification, multiple examples may implement a component, operation, or structure described as a single example. While individual operations of one or more methods are illustrated and described as separate operations, one or more of these operations may be performed simultaneously, and the operations do not need to be performed in the order in which they are illustrated. Structures and functions presented as separate components in exemplary configurations may be implemented as combined structures or components. Similarly, structures and functions presented as single components may also be implemented as separate components. These and other variations, modifications, additions, and improvements fall within the scope of the subject matter of this specification.
[0102] In addition, certain embodiments described herein include logic or several routines, subroutines, applications, or instructions. These may constitute either software (e.g., code embodied on a machine-readable medium or in a transmitted signal) or hardware. In hardware, routines, etc., are tangible units capable of performing a particular operation and may be configured or arranged in a particular manner. In exemplary embodiments, one or more computer systems (e.g., standalone, client, or server computer systems) or one or more hardware modules of a computer system (e.g., a processor or a group of processors) may be configured by software (e.g., an application or application portion) as hardware modules that operate to perform a particular operation as described herein.
[0103] Various operations of the exemplary methods described herein may be performed, at least in part, by one or more processors that are temporarily (e.g., by software) or permanently configured to perform the relevant operations. Whether temporarily or permanently configured, such processors may constitute a processor implementation module that operates to perform one or more operations or functions. The modules referred to herein may, in some exemplary embodiments, include processor implementation modules.
[0104] Similarly, any methods or routines described herein may be processor-implemented, at least partially. For example, at least some of the operations of a particular method may be performed by one or more processors or processor-implemented hardware modules. The specific performance of those operations may be distributed across one or more processors and may reside not only within a single machine but also across multiple machines. In some exemplary embodiments, the processor(s) may be located in a single location, while in other embodiments, the processors may be distributed across several locations.
[0105] The specific performance characteristics of these operations can be distributed across one or more processors and can reside not only within a single machine but also deployed across multiple machines. In some exemplary embodiments, one or more processors or processor implementation modules may be located in a single geographical location (e.g., a home environment, an office environment, or a server farm). In other embodiments, one or more processors or processor implementation modules may be distributed across multiple geographical locations.
[0106] This detailed description should be interpreted as illustrative only, and does not describe all possible embodiments, as it would be impractical, if not impossible, to describe all possible embodiments. A number of alternative embodiments can be carried out by using either the current art or art developed after the filing date of this application.
[0107] Those skilled in the art will recognize that a wide variety of modifications, changes, and combinations can be made with respect to the above embodiments without departing from the scope of the present invention, and that such modifications, changes, and combinations can be considered to fall within the scope of the concept of the present invention.
[0108] The claims at the end of this patent application are not intended to be construed under Section 112(f) of the United States Patent Act unless the conventional means plus functional language is explicitly enumerated, for example, unless the phrase “means for” or “process for” is explicitly enumerated in the claims. The systems and methods described herein are intended to improve computer functions and improve the functions of conventional computers.
[0109] The dimensions and values disclosed herein should not be understood as being strictly limited to the exact numerical values listed. Instead, unless otherwise specified, each such dimension is intended to mean both the listed value and the functionally equivalent range encompassing that value. For example, a dimension disclosed as "40 mm" is intended to mean "approximately 40 mm."
[0110] All documents referenced herein, including any patents or patent applications that are cross-referenced or related, and any patent applications or patents on which this application claims priority or benefit thereof, are incorporated herein by reference in their entirety, unless expressly excluded or otherwise limited. No reference to any document shall be deemed prior art to any invention disclosed or claimed herein, nor shall any such invention be taught, suggested, or disclosed, either alone or in combination with any one or more other references. Furthermore, to the extent that any meaning or definition of a term in this document conflicts with any meaning or definition of the same term in any document incorporated by reference, the meaning or definition given to that term in this document shall prevail.
[0111] While specific aspects of the present invention have been illustrated and described, it will be obvious to those skilled in the art that various other changes and modifications are possible without departing from the spirit and scope of the invention. Therefore, it is intended that all such changes and modifications within the scope of the invention be covered in the appended claims.
Claims
1. A robot (100) configured for cleaning, wherein the robot A main body (102) equipped with a chassis, A cleaning element (402) having a base mounting portion for receiving and holding a disposable hard surface wiping base, wherein the base mounting portion has a width (402w) of approximately 13.9 cm or less, which is generally perpendicular to the forward direction of the robot's movement, A motor (254m1) configured to move the robot within the environment (800), Sensor (108s1), A processor (112) is communicatively coupled to the sensor, A computer memory (114) is connected to the processor in a communication manner, The computer memory (114) contains, when executed by the processor, a computing instruction configured to (i) cause the processor to receive sensor data from the sensor, and (ii) cause the motor to operate based on the sensor data, thereby operating the robot within the environment. The aforementioned robot, (a) When the processor executes the computing instruction, the robot is configured to operate within the environment by performing a predetermined number of passes. (b) When the processor executes the computing instruction, the robot is further configured to operate within the environment by performing a predetermined speed for each path, (c) The robot has a height (502) of 9 centimeters or less, (d) The main body of the robot is equipped with a bumper having a corner radius of 0.5 mm to 30 mm. (e) The cleaning element has a turning radius of less than 27.5 centimeters. (f) The main body of the robot is provided with a bumper (104) having at least a front bumper portion (104fp), the cleaning element is provided with at least a front cleaning element portion (402fe), and the distance from the front bumper portion to the front cleaning element portion is less than 10 millimeters, (g) A robot (100) comprising one or more of the following: the main body of the robot comprises a bumper having at least one side bumper portion, the cleaning element comprises at least one side cleaning element portion, and the distance from the side bumper portion to the side cleaning element portion is less than 10 millimeters.
2. The robot according to claim 1, wherein the width is 11.5 cm or less.
3. The robot according to claim 1, wherein the width is 7 cm or less.
4. The robot according to any one of claims 1 to 3, wherein the predetermined number of passes includes 10 or more passes, and each pass includes a floor coverage area of 1 square meter.
5. The robot according to any one of claims 1 to 4, wherein the predetermined speed for each pass includes at least 100 millimeters per second.
6. The robot according to any one of claims 1 to 5, wherein the height of the robot is 7 centimeters or less.
7. The robot according to any one of claims 1 to 6, wherein the height of the robot is 5 centimeters or less.
8. The robot according to any one of claims 1 to 7, wherein the main body of the robot is equipped with a bumper, and the bumper is positioned at a distance of 2 millimeters to 10 millimeters from the main body.
9. The robot according to any one of claims 1 to 8, wherein the predetermined speed is reduced to decrease the intensity of collisions between the robot and obstacles in the environment and reduce the amount of debris that falls.
10. The robot according to claim 9, wherein the deceleration value from the predetermined speed includes values from 0.1 millimeters per second per second to 33.30 millimeters per second per second.