Surface type detection method and robotic cleaner configured to perform the method

By generating surface type clusters through multi-sensor fusion technology and combining confidence values ​​and cluster density, the problem of erroneous output in surface type detection by robotic cleaners is solved, thereby improving detection accuracy and resource utilization efficiency.

CN116057481BActive Publication Date: 2026-05-26SHARKNINJA OPERATING LLC

Patent Information

Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
SHARKNINJA OPERATING LLC
Filing Date
2021-06-11
Publication Date
2026-05-26

Smart Images

  • Figure CN116057481B_ABST
    Figure CN116057481B_ABST
Patent Text Reader

Abstract

A surface type detection method may include: traversing a clean area; generating a plurality of clusters as traversing the clean area, each cluster being associated with a corresponding surface type and location; and determining at least one surface type region within the clean area based at least in part on a comparison of the plurality of clusters.
Need to check novelty before this filing date? Find Prior Art

Description

[0001] Cross-referencing related applications

[0002] This application claims the benefit of U.S. Provisional Application No. 63 / 038,425, filed June 12, 2020, entitled “Robotic Vacuum Cleaner having Surface Type Detection using Sensor Fusion,” which is incorporated herein by reference in its entirety. Technical Field

[0003] This disclosure generally relates to surface treatment equipment, and more specifically, to a robotic cleaner. Background Technology

[0004] Mobile robotic devices may include robotic cleaners. A robotic cleaner is configured to autonomously travel around a surface while collecting debris left on the surface. The robotic cleaner may be configured to travel along the surface according to random and / or predetermined paths. When traveling along a random path, the robotic cleaner may adjust its path in response to encountering one or more surface types. When traveling along a predetermined path, the robotic cleaner may have formed a map of the area to be cleaned in previous operations and travel around the area according to the predetermined path based on the map. Regardless of whether the robotic cleaner is configured to travel along a random or predetermined path, it may be configured to travel in a predetermined mode. For example, the robotic cleaner may be positioned at a location with a rug and caused to enter a cleaning mode that causes the robotic cleaner to clean only the rug.

[0005] Robotic cleaners may include one or more sensors for detecting one or more conditions of the surrounding environment. For example, a robotic cleaner may include one or more surface type detection sensors configured to detect one or more characteristics of a surface (e.g., the ground). In some cases, the output data generated by the one or more surface type detection sensors may suffer from erroneous output (e.g., false alarms indicating incorrect changes in surface type). Erroneous output may result from, for example, noise in the output data, clutter on the surface (e.g., one or more wires), and / or the surface's reflectivity. Erroneous output may cause the mobile robotic cleaner to consume additional computational resources in obstacle avoidance (e.g., stopping and / or changing its route) and may exhibit behavior that a user would interpret as unintelligent. Attached Figure Description

[0006] These and other features and advantages will be better understood by reading the following detailed description in conjunction with the accompanying drawings, in which:

[0007] Figure 1 This is a schematic bottom view of an example of a robotic cleaner according to an embodiment of the present disclosure.

[0008] Figure 2A This is a schematic block diagram of a circuit configured to determine a surface type according to embodiments of the present disclosure.

[0009] Figure 2B This is a flowchart of an example method for determining a surface type according to embodiments of the present disclosure.

[0010] Figure 3 This is a bottom view of a wet / dry robotic cleaner according to an embodiment of the present disclosure.

[0011] Figure 4 According to embodiments of this disclosure Figure 3 A vertical cross-sectional view of an example surface type sensor for a wet / dry robotic cleaner.

[0012] Figure 5A A schematic representation of a portion of a surface type detection and marking method according to an embodiment of the present disclosure is shown.

[0013] Figure 5B Embodiments according to this disclosure are shown Figure 5A A schematic representation of another part of the method.

[0014] Figure 5C Embodiments according to this disclosure are shown Figure 5A A schematic representation of another part of the method.

[0015] Figure 5D Embodiments according to this disclosure are shown Figure 5A A schematic representation of another part of the method.

[0016] Figure 6 This is a flowchart illustrating an example of a surface type detection method according to an embodiment of the present disclosure.

[0017] Figure 7A This is a flowchart illustrating an example of a surface type detection method using multiple sensor inputs according to embodiments of the present disclosure.

[0018] Figure 7B According to embodiments of this disclosure Figure 7A A flowchart of another example of the method.

[0019] Figure 8 This is a flowchart illustrating an example of the behavior of a robotic cleaner using a dynamic surface type detection method according to embodiments of the present disclosure. Detailed Implementation

[0020] This disclosure generally relates to a robotic cleaner (e.g., a robotic vacuum cleaner). The robotic cleaner may include: a suction motor configured to generate suction at an air inlet; at least one side brush coupled to a side brush motor, the side brush being configured to push debris on a surface toward the air inlet; a dust collection cup for collecting the debris pushed into the air inlet; and a surface type sensor. The robotic cleaner is configured to detect surface type at least in part based on the output of the surface type sensor.

[0021] In operation, the robotic cleaner may include a controller configured to receive sensor input from at least a surface type sensor. The controller may be configured to analyze the input received from the surface type sensor to determine a first surface type corresponding to the sensor input and associate the determined surface type with the location of the robotic cleaner. The first determined surface type may then be compared with one or more additionally determined surface types, which correspond to locations near the location associated with the first determined surface type. For example, the first determined surface type may be compared with additional surface type determinations, each of which is associated with a corresponding location within an area surrounding the robotic cleaner. Based on the comparison, the controller may determine whether the first determined surface type is an accurate representation of the surface type. In other words, the controller can generally be described as being configured to filter out erroneous input data received from the surface type sensor.

[0022] In some embodiments, the controller may be further configured to receive input from one or more additional sensors (e.g., sensors monitoring motor current, drop / cliff sensors, and / or any other sensors) to generate a second surface type determination associated with the location of the robotic cleaner. The second determined surface type may be compared with one or more additional surface type determinations, each corresponding to a location near the location associated with the second determined surface type. For example, the second determined surface type may be compared with additional surface type determinations, each associated with a corresponding location within an area surrounding the robotic cleaner. Based on the comparison, the controller may determine whether the second determined surface type is an accurate representation of the surface type.

[0023] In some cases, a first determined surface type can be compared with a second determined surface type to generate a composite surface type determination. The composite surface type determination can be associated with a confidence level. For example, when the first and second surface type determinations correspond to the same surface type, the composite surface type determination corresponds to the surface type of both the first and second determinations and can be associated with a high confidence level. As a further example, when the first and second surface type determinations do not correspond to the same surface type, a reliability factor can be associated with both determinations, and the composite surface type determination corresponds to the surface type determination with the highest reliability factor. In this example, the composite surface type determination can be associated with a low confidence level.

[0024] In some embodiments, the integration module may generate a surface type map based on one or more of the first, second, and / or composite surface type determinations. For example, the map may include multiple composite surface type determinations, each corresponding to a specific location, with a confidence level associated with each composite surface type determination. In this example, the map may be presented to a user, where the confidence level is represented by color (e.g., green for high confidence and red for low confidence). The user may be able to verify the accuracy of the composite surface type determinations, which could allow for improvements in the confidence level associated with each composite surface type determination. As another example, the map may include multiple first surface type determinations corresponding to specific locations. The user may be able to verify the accuracy of the first surface type determinations. Surface type maps can be used to automatically guide and control the behavior of mobile robotic devices.

[0025] Figure 1 A schematic bottom view of a robotic cleaner 100 is shown. As shown, the robotic cleaner 100 includes a body 102, one or more side brushes 104 rotatable relative to the body 102, one or more drive wheels 106 coupled to the body 102 and configured to push the robotic cleaner 100 on a surface to be cleaned, an air inlet 108 in which a rotatable agitator 110 is housed, a dust cup 112, non-drive support wheels 113 (e.g., casters), and one or more forward sensors 114 coupled to the body 102. The one or more forward sensors 114 may include a collision sensor, an obstacle detection sensor, a sidewall sensor, an optical sensor, or a cliff sensor.

[0026] One or more side brushes 104 may be driven by corresponding side brush motors 116 (shown in intaglio) housed within the body 102. Activation of the side brush motor 116 causes a corresponding rotation of the corresponding side brush 104 about an axis (e.g., extending generally perpendicular to the bottom surface 118 of the body 102). The rotation of one or more side brushes 104 pushes debris on the surface to be cleaned (e.g., the floor) toward the central axis 120 of the body 102, which extends parallel to the forward movement direction of the robotic cleaner. In other words, the rotation of one or more side brushes 104 pushes debris on the surface to be cleaned (e.g., the floor) toward the air inlet 108. The side brush motor 116 may be associated with a side brush sensor 134. The side brush sensor 134 may be configured to determine the amount of current or torque associated with the operation of the side brush motor 116.

[0027] One or more drive wheels 106 may be driven by corresponding drive motors 122 (shown in inset). One or more drive wheel sensors 123 may be associated with drive motors 122. The one or more drive wheel sensors 123 may include, for example, encoders or current sensors. Activation of the drive motor 122 causes a corresponding rotation of the respective drive wheel 106. Differential rotation of the plurality of drive wheels 106 can be used to manipulate the robotic cleaner 100 on the surface to be cleaned.

[0028] Air inlet 108 may be fluidly coupled to suction motor 124. Suction motor 124 is configured to generate suction at air inlet 108, such that debris deposited on the surface to be cleaned may be pushed into air inlet 108. Rotary agitator 110 may be driven by a corresponding agitator motor 126. One or more agitator motor sensors 127 may be associated with agitator motor 126. One or more agitator sensors 127 may be configured to detect the torque and / or current consumption of agitator motor 126. One or more agitator motor sensors 127 may include, for example, an encoder or a current sensor. Rotation of rotary agitator 110 may cause at least a portion of rotary agitator 110 to engage the surface to be cleaned and expel at least a portion of the debris deposited thereon. The expelled debris may then be drawn into air inlet 108 by suction generated by suction motor 124.

[0029] The dust collection cup 112 fluidly couples the air inlet 108 and the suction motor 124, such that at least a portion of the debris drawn into the air inlet 108 can be deposited within the dust collection cup 112. The dust collection cup 112 may also include a pad 128 removably coupled thereto. The pad 128 may be configured to receive liquid, enabling the robotic cleaner 100 to perform wet cleaning.

[0030] As shown in the figure, the robotic cleaner 100 may include a front-facing sensor 114a, a left-facing sensor 114b, and a right-facing sensor 114c. The front-facing sensor 114 may be configured to detect one or more surface conditions. The one or more surface conditions may include one or more of the following: surface type (e.g., carpeted surface, hard floor, etc.), impassable drop / cliff, and / or any other surface conditions.

[0031] The left front sensor 114b and the right front sensor 114c may be positioned on opposite sides of the central axis 120 of the body 102, and the front sensor 114a may be positioned such that the central axis 120 extends through the front sensor 114a. However, other configurations are possible. For example, the robotic cleaner 100 may include only the left front sensor 114b and the right front sensor 114c arranged on opposite sides of the central axis 120 of the body 102. As another example, the robotic cleaner 100 may include only the front sensor 114a arranged on the central axis 120 such that the central axis 120 extends through the front sensor 114a. Including the left front sensor 114b and the right front sensor 114c allows the robotic cleaner 100 (e.g., using the controller 130) to determine the orientation of the robotic cleaner 100 relative to a change in surface type (e.g., such that the robotic cleaner 100 can be controlled to follow a change in surface type).

[0032] Forward sensors 114a, 114b, and 114c may be coupled to the body 102 of the robotic cleaner 100 and arranged around the outer periphery of the body. For example, and as shown, forward sensors 114a, 114b, and 114c may be arranged around the outer periphery of a forward portion 132 of the body 102. The forward portion 132 corresponds to a portion of the body 102 that extends from one or more drive wheels 106 and in the direction of one or more side brushes 104.

[0033] By arranging forward sensors 114a, 114b, and 114c along the outer periphery of the forward portion 132 of the body 102, the robotic cleaner 100 may be able to detect a change in surface type before it crosses it (e.g., one or more drive wheels 106 cross the change). For example, the robotic cleaner 100 may be configured to avoid crossing the change in surface type. This prevents one or more cleaning tools (e.g., the rotatable agitator 110 or the pad 128) from crossing the change in surface type. This may, for example, prevent the wet pad 128 from contacting carpeted surfaces (and thus potentially prevent damage to the carpeted surfaces). In some cases, the surface type sensor 114 may be activated only when the robotic cleaner 100 is performing wet cleaning (e.g., when the pad 128 is wet). This can reduce the power consumption and / or processing load of the controller 130. In other cases, the forward sensor 114 may be active in both wet and dry cleaning operations. In these cases, the forward sensor 114 can also be used to detect drops on the surface (e.g., the edge of a step).

[0034] One or more forward sensors 114 may be infrared (IR) sensors configured to emit an IR beam using an IR light-emitting diode (LED) and detect light reflected from the surface to be cleaned. Additionally, one or more forward sensors 114 may be used for cliff / step detection. A single IR emitter may be used in combination with one or more IR detectors. The reflected light may have sufficiently predictable optical characteristics (e.g., amplitude and / or frequency distribution) to allow the robotic cleaner 100 to determine the surface type at least in part based on differences in the reflected signals received by one or more IR detectors. However, different surface types, such as dark carpets or shiny hard floors, may reduce the accuracy of surface type determination. This reduction in accuracy can be mitigated by using additional sensors and / or comparison with surrounding surface type determinations.

[0035] In some embodiments, in addition to or instead of the one or more forward sensors 114, one or more drive wheel sensors 123, one or more agitator motor sensors 127, and / or one or more side brush sensors 134 may be used to determine the surface type. One or more of the drive wheel sensors 123, one or more agitator motor sensors 127, and / or one or more side brush sensors 134 may be positioned within a distance less than or equal to twice the maximum width or diameter of the corresponding motor.

[0036] The outputs of sensors 123, 127, and 134 can generally be described as being configured for safety and / or navigation. In other words, the robotic cleaner 100 may include sensors 123, 127, and 134 primarily for safety and / or navigation purposes. For example, a current sensor can prevent overcurrent events in the associated motor, while a wheel encoder can be used to determine the distance traveled or wheel slippage during navigation. However, the outputs from sensors 123, 127, and 134 can also be used for surface type detection. For example, the outputs from sensors 123, 127, and 134 may vary based on the surface type traversed. In one example, when the robotic cleaner 100 traverses from a hard floor to a plush carpet, the side brush motor 116 may experience an increase in torque and / or current consumption. Therefore, changes in torque and / or current consumption can indicate changes in surface type.

[0037] Figure 2A An example of a schematic circuit block diagram in which the surface type sensor 114 is used to determine the surface type is shown. As shown, the controller 130 includes an integrated module 200 or is communicatively coupled to said integrated module. The integrated module 200 is communicatively coupled to one or more of the forward sensor 114, agitator sensor 127, drive wheel sensor 123, and / or side brush sensor 134. For example, the integrated module 200 may be configured to receive a first output from at least one forward sensor 114 and associate the first output with position data 144. The position data 144 corresponds to the position of the robotic cleaner 100 in the area being cleaned when the first output is generated. The association of the first output with the position data 144 can generally be described as a first cluster point. The controller 130 is configured to associate the surface type with the cluster point at least in part based on the first output. A confidence value may be associated with each cluster point generated, and the confidence value generally represents the confidence that the surface type associated with the cluster point accurately represents the actual surface type.

[0038] In some cases, the first output can be compared with the second output. The second output can be generated by one or more of the forward sensor 114, agitator sensor 127, drive wheel sensor 123, and / or side brush sensor 134. The comparison result can be used to generate a confidence value.

[0039] Controller 130 is configured to compare the most recently generated cluster point with previously generated cluster points. A confidence value can be assigned to the most recently generated cluster point, at least in part, based on this comparison. Previously generated cluster points are associated with corresponding location data. In some cases, the most recently generated cluster point can be compared with previously generated cluster points that have corresponding location data 144 (e.g., within 1 cm, 5 cm, 10 cm, 50 cm, 100 cm, etc.). For example, the confidence value associated with the most recently generated cluster point can be based at least in part on a comparison of the most recently generated cluster point with one or more neighboring cluster points.

[0040] After traversing a clean area, controller 130 can analyze each generated cluster. When a sufficient number of neighboring clusters correspond to the same surface type, controller 130 can be configured to identify a surface type region. A surface type region can typically be described as being defined by a boundary line (e.g., in the form of a bounding box) extending around a region having a sufficient number of clusters associated with a common surface type. For example, a surface type region can be established when the density of clusters associated with a common surface type exceeds a threshold within the region. The cluster density of clusters associated with a common surface type can typically be described as the number of clusters with the common surface type (e.g., neighboring clusters with the common surface type) within the region divided by the number of clusters within the region (e.g., all neighboring clusters). The threshold cluster density used to establish a surface type region can be, for example, greater than 0.4, greater than 0.5, greater than 0.6, greater than 0.7, greater than 0.8, greater than 0.9, greater than 0.95, greater than 0.99, and / or any other threshold. Surface type zones may correspond to, for example, area carpets located in tiled rooms, carpeted rooms (e.g., adjacent to hard floors), and / or any other zones.

[0041] Generating surface type regions based at least in part on cluster density can mitigate the impact of erroneous sensor outputs on surface type identification. In some cases, controller 130 may be configured to filter out erroneous outputs (e.g., false alarms that incorrectly indicate changes in surface type) based at least in part on comparisons of neighboring clusters. Alternatively, controller 130 may be configured to filter out erroneous outputs based at least in part on confidence values ​​associated with the respective clusters.

[0042] Figure 2B This is a flowchart illustrating an example of surface type detection method 248. Method 248 can be, for example, derived from... Figure 1The robotic cleaner 100 performs the procedure. Method 248 may be embodied as one or more instructions stored in one or more memories (e.g., non-transitory computer-readable storage), wherein the one or more instructions are configured to execute on one or more processors. For example, a controller may be configured to cause one or more steps of method 248 to be executed. Alternatively or additionally, one or more steps of method 248 may be executed in any combination of software, firmware, and / or circuitry (e.g., application-specific integrated circuits).

[0043] As shown in the figure, method 248 includes operation 250. Operation 250 may include moving the robotic cleaner across a cleaning area. While moving across the cleaning area, the robotic cleaner may perform one or more cleaning operations. Alternatively, while moving across the cleaning area, the robotic cleaner may not perform any cleaning operations.

[0044] Method 248 further includes operation 252. Operation 252 may include generating multiple clusters as the clean area is traversed. Each cluster is associated with a surface type and a location. The location corresponds to the location within the clean area where the surface type at which the cluster is determined is located.

[0045] Method 248 includes operation 254. Operation 254 may include determining at least one surface type zone within a cleaning area based at least in part on a comparison of multiple clusters. Each surface type zone may be determined by comparing neighboring clusters. The comparison of neighboring clusters may include a comparison of the surface types of the corresponding clusters. Neighboring clusters may include clusters located within locations such as 1 cm, 5 cm, 10 cm, 50 cm, and 100 cm.

[0046] In some cases, comparing neighboring clusters may include determining the cluster density of neighboring clusters and comparing that density to a threshold. Cluster density can typically be described as the number of neighboring clusters associated with a common surface type (e.g., carpet, hard floor, or any other surface type) divided by the total number of neighboring clusters.

[0047] Figure 3 A bottom view showing an example of a robotic wet / dry cleaner 300, the cleaner may be... Figure 1An example of a robotic cleaner 100 is shown. As illustrated, the robotic wet / dry cleaner 300 includes multiple side brushes 302, multiple drive wheels 304, an air inlet 306 having a rotatable agitator 308, a forward non-drive wheel 310, a rearward non-drive wheel 312, a dust cup 314, a pad 316 removably coupled to the dust cup 314, and multiple surface type sensors 318 (e.g., a left surface type sensor 318a and a right surface type sensor 318b). The multiple side brushes 302 can be driven by corresponding side brush motors 320 (schematically shown in inset), the multiple drive wheels 304 can be driven by corresponding drive motors 322 (schematically shown in inset), and the rotatable agitator 308 can be rotated by a corresponding agitator motor 324 (schematically shown in inset). The robotic wet / dry cleaner 300 may also include a suction motor 326 (schematically shown in inset) configured to generate suction at an air inlet 306 so that debris deposited on the surface to be cleaned (e.g., the floor) can be pushed away.

[0048] A surface type sensor 318 may be spaced apart from the pad 316 by a distance sufficient to allow the robotic wet / dry cleaner 300 (e.g., using a controller 328, schematically shown in inset) to determine the surface type transition and change the cleaner's direction of travel before the pad 316 reaches the transition. This configuration prevents the pad 316 from contacting adjacent surface types. For example, the sensor-pad separation distance 330 may be in the range of 100 mm to 150 mm. As another example, the sensor-pad separation distance 330 may be 130 mm. In some cases, the sensor separation distance 332 may be configured to be maximized while still ensuring that the magnitude of the sensor-pad separation distance 330 is sufficient to allow the robotic cleaner 300 to change direction and prevent the pad 316 from crossing the detected surface type transition.

[0049] Figure 4A vertical cross-sectional view of an embodiment of the surface type sensor 318 is shown. As illustrated, the surface type sensor 318 includes an emitter 403 (e.g., an IR LED), a cliff sensor 402, a first surface type receiver 404, and a second surface type receiver 406. Other surface type sensors may include ultrasonic sensors, acoustic sensors, optical flow sensors, or any other optical sensors. The outputs from the first surface type receiver 404 and the second surface type receiver 406 can be used to determine the type of surface traversed by the robotic cleaner. The behavior of the robotic wet / dry cleaner 300 can be adjusted based on the detected surface type. However, determining the surface type based on the output of a single surface type sensor 318 may result in erroneous outputs. If erroneous outputs occur, the robotic cleaner may consume additional computational resources to avoid the surface (e.g., it may stop, change its route, or display behavior that the user would interpret as unintelligent).

[0050] To correct for erroneous outputs, controller 328 may establish a surface type region based at least in part on clusters generated using location data and the output from surface type sensor 318. As discussed, the surface type region may be established at least in part based on a sufficient number of neighboring clusters associated with a common surface type.

[0051] Figures 5A-5D Showing the robot cleaner 580 (which can be Figure 1 An example of a robotic cleaner 100 can be used to determine a surface type region based at least in part on a sufficient number of neighboring clusters associated with a common surface type. Figures 5A-5D This can be performed during non-cleaning operations or dry cleaning operations. Therefore, an initial map can be generated, which can form the basis for a persistent map. The persistent map can generally be described as a map used by the robotic cleaner 580 during multiple cleaning operations.

[0052] Figure 5A The diagram illustrates the movement path 582 of a robotic cleaner 580 within a cleaning area 584 having a surface (e.g., floor) 585 to be cleaned. As shown, the movement path 582 is configured such that the robotic cleaner 580 traverses a significant portion of the cleaning area 584 (e.g., greater than 75%, 85%, 90%, 95%, etc.). While traversing the movement path 582, the robotic cleaner 580 may encounter at least two distinct surface types.

[0053] like Figure 5BAs shown, the cleaning area 584 includes a first surface type 586 (e.g., a hard floor) and a second surface type 588 (e.g., a carpeted floor). The first surface type 586 and the second surface type 588 are schematically shown in dashed lines. As the robot cleaner 580 traverses the cleaning area 584, it generates clusters 590, each cluster 590 associated with a corresponding surface type and location. For clarity, Figure 5B The cluster point 590 associated with the second surface type 588 is shown. As shown, the clean area 584 corresponding to the first surface type 586 incorrectly includes the cluster point 590 corresponding to the second surface type 588. These incorrect cluster points 590 may be the result of, for example, noise in the surface type sensor output and / or surface conditions.

[0054] The robotic cleaner 580 can be configured (e.g., using an algorithm) to identify the locations of a first surface type 586 and a second surface type 588. For example, the location of the second surface type 588 within a cleaning area 584 can be based at least in part on the density of clusters 590 corresponding to the second surface type 588 within the area. In other words, the algorithm can be used to find areas having a sufficient number of clusters 590 corresponding to the second surface type (e.g., at least 60%, at least 70%, at least 80%, at least 90%, at least 95%, or at least 99% of the clusters 590 within the area corresponding to the second surface type 588).

[0055] In some cases, the robotic cleaner 580 can be configured to recognize only two surface types (e.g., hard surfaces and soft surfaces). In this case, each cluster point can be associated with a binary representation of the surface type (e.g., 0 for hard surfaces and 1 for soft surfaces).

[0056] like Figure 5C Once a region corresponding to the second surface type 506 is identified, the robotic cleaner 580 can identify the boundary line 592 (e.g., a bounding box) surrounding the identified region. By surrounding the identified region with the boundary line 592, the robotic cleaner 580 can be able to remove individual clusters 590, which can reduce memory consumption (see example...). Figure 5D ).

[0057] In future cleaning operations, particularly wet cleaning operations, boundary line 592 can be used to identify areas that the robotic cleaner 580 will not cross during some or all of the cleaning operations (e.g., carpeted areas). These areas can typically be described as avoidance zones.

[0058] Similarly, avoidance zones can be established based on obstacle detection. For example, in a zone with a large number of obstacles (e.g., enough to interfere with effective crossing), the robotic cleaner 580 may undergo several obstacle detections during crossing. Based at least in part on the number of obstacle detections, the robotic cleaner 580 may establish avoidance zones corresponding to those zones with a large number of obstacles in order to avoid getting stuck or entangled in said zones during future crossings.

[0059] Figure 6 This illustrates the use of robotic cleaners, for example, equipped with surface type sensors and navigation systems (e.g., Figure 1 The flowchart illustrates an example of a surface type detection method 500 for a robotic cleaner 100. Method 500 may be embodied as one or more instructions stored in one or more memories (e.g., non-transitory computer-readable storage), wherein the one or more instructions are configured to execute on one or more processors. For example, a controller may be configured to cause one or more steps of method 500 to be executed. Alternatively or additionally, one or more steps of method 500 may be executed in any combination of software, firmware, and / or circuitry (e.g., application-specific integrated circuits).

[0060] During operation 502, a navigation system is used to guide the robotic cleaner across a cleaning area. The navigation system is configured to position the robotic cleaner within the cleaning area (e.g., to enable the robotic cleaner to determine its position within the cleaning area). As it crosses the cleaning area, a surface type sensor outputs a signal corresponding to the type of surface the robotic cleaner is traversing. Based at least in part on the surface type sensor output, the controller can determine the type of surface the robotic cleaner is traversing and associate a confidence level with the determined surface type.

[0061] During operation 504, the controller associates the determined surface type with the location, thus forming a cluster point. The location associated with the surface type corresponds to the position where the surface type sensor outputs a signal corresponding to the surface type determined by the navigation system. The controller can continue to generate cluster points as the robot cleaner traverses the cleaning area.

[0062] During operation 506, a map of the cleaning area may be generated (e.g., by the controller of the robotic cleaner and / or by a remote device), wherein the map includes cluster points (e.g., a map display of the location of each cluster point generated in association with a specific surface type). For example, the generated map may be configured to display cluster points corresponding to soft surface types (e.g., carpet).

[0063] During operation 508, the location of the boundary line can be determined (e.g., by the controller of the robotic cleaner and / or by a remote device). The boundary line is configured to enclose (e.g., within a frame) an area having a sufficient number of clusters associated with a particular surface type (e.g., carpet). For example, a boundary frame can be established that, for clusters associated with a carpet surface type, encloses an area having a cluster density exceeding a predetermined threshold.

[0064] During operation 510, the area surrounded by the boundary line can also be visually presented to the user of the robotic cleaner (e.g., using a remote device such as a smartphone, tablet, computer, and / or any other device). When presented to the user, the area surrounded by the boundary line can also be associated with a surface type (e.g., a surface type associated with a cluster density exceeding a threshold).

[0065] During operation 512, the user can confirm that the surface type associated with the enclosed area is accurate, or reject an inaccurate surface type associated with the enclosed area. During operation 516, if the user accepts the surface type, the boundary line and the surface type associated with the area enclosed by the boundary line can be saved for future cleaning operations. This allows for the deletion of aggregation points, thus saving memory. During operation 514, if the user rejects the surface type, the user can be prompted to select the correct surface type, the boundary line and / or aggregation points can be deleted, and / or the confidence level associated with the surface type determination can be reduced.

[0066] In some cases, one or more additional sensors may be used in addition to the surface type sensor to determine the surface type. The surface type determined using the one or more additional sensors can be compared with the surface type determined using the surface type sensor. Based on the comparison, the controller can determine the surface type associated with the corresponding convergence point and the confidence value associated with the associated surface type. When determining the surface type, one or more additional sensors may be less reliable than the surface type sensor.

[0067] Figure 7A This illustrates the use of robotic cleaners, for example, equipped with surface type sensors and navigation systems (e.g., Figure 1 The flowchart illustrates an example of a surface type detection method 600 for a robotic cleaner 100. Method 600 may be embodied as one or more instructions stored in one or more memories (e.g., non-transitory computer-readable storage), wherein the one or more instructions are configured to execute on one or more processors. For example, a controller may be configured to cause one or more steps of method 600 to be executed. Alternatively or additionally, one or more steps of method 600 may be executed in any combination of software, firmware, and / or circuitry (e.g., application-specific integrated circuits).

[0068] During operation 601, a navigation system is used to guide the robotic cleaner across the cleaning area. As it crosses the cleaning area, a primary sensor (e.g., a surface type sensor) is configured to generate a primary sensor input (or output) 602, and secondary sensors (e.g., sensors associated with a drive motor, side brush motor, or agitator motor) are configured to generate a secondary sensor input (or output) 604. The primary sensor input 602 and the secondary sensor input 604 correspond to positions within the cleaning area.

[0069] At operation 606, the robot cleaner's controller receives main sensor input 602. The controller associates the corresponding position with main sensor input 602, thereby forming a first sensor cluster. At operation 608, the robot cleaner's controller receives secondary sensor input 604. The controller associates the corresponding position with secondary sensor input 604, thereby forming a second sensor cluster.

[0070] During operation 612, a surface type corresponding to the main sensor input 602 is determined, and this surface type is associated with a first sensor cluster point. During operation 614, a surface type corresponding to the secondary sensor input 604 is determined, and this surface type is associated with a second sensor cluster point. During operation 616, the surface types associated with the first and second cluster points are compared. At operation 610, the controller associates the first and second sensor cluster points corresponding to a common location within the cleaning area to form a composite cluster point associated with the common location. In some cases, the generation of the composite cluster point can generally be described as being at least partially based on a comparison of the first sensor cluster point and the second sensor cluster point, wherein the first sensor cluster point is generated using the main sensor input 602, and the second sensor cluster point is generated using the secondary sensor input 604.

[0071] During operation 618, the confidence level of the composite clusters is determined at least in part based on comparison. For example, the confidence level determined when both the first and second clusters are associated with the same surface type is higher than the confidence level when the first and second clusters are associated with different surface types.

[0072] During operation 620, the controller associates the confidence level of the composite cluster with the composite cluster. During operation 622, a map is generated using map data 624 and the composite cluster. Map data 624 can be generated using the robot cleaner's navigation system. The composite cluster is added to the generated map at the location associated with it. Operations 606, 608, 610, 612, 614, 616, 618, 620, and 622 can be repeated until most of the cleaning area has been covered.

[0073] During operation 626, the controller generates a boundary line that encloses a region having a sufficient number of composite aggregates associated with a common surface type. Operation 626 can be performed during and / or after the robotic cleaner traverses the cleaning area. At operation 628, a surface type is associated with the region enclosed by the boundary line, the surface type corresponding to the common surface type of the composite aggregates.

[0074] Figure 7B This is a flowchart illustrating an example of a surface type detection method 600, wherein a main sensor input 602 is received from a surface type sensor (e.g., an optical or IR surface type sensor), and a secondary sensor input 604 is received from one or more sensors (e.g., sensors measuring the current consumption or torque of the corresponding motor) associated with a corresponding brush motor, agitator motor, and / or drive wheel motor. In this example, the reliability of the surface type detected using the main sensor input 602 may be greater than the reliability of the surface type detected using the secondary sensor input 604. Confidence levels may be associated with both the main sensor input 602 and the secondary sensor input 604.

[0075] The confidence level of each sensor can be based, at least in part, on the magnitude of the change in sensor output. As the robotic cleaner traverses changes in surface type, the magnitude of the change in sensor output can vary depending on the surface type. For example, when transitioning from a short-pile carpet to a hard, reflective surface, the optical sensor may experience a larger change in output compared to the magnitude of the change in output from the sensor measuring the side brush torque. Therefore, a higher confidence level can be associated with the output from the optical sensor, and a lower confidence level can be associated with the output generated by the sensor measuring the side brush torque.

[0076] like Figure 7B As shown, method 600 may include additional operations 615 and 617. In operation 615, a confidence level (e.g., denoted as a reliability factor) may be assigned to the surface type determined by primary sensor input 602. In operation 617, a confidence level (e.g., denoted as a reliability factor) may be assigned to the surface type determined by secondary sensor input 604. During operation 616, the assigned confidence level for each surface type may be considered during the comparison. For example, an assigned weight may be determined for each surface type, wherein the weight is at least partially based on the confidence level.

[0077] Figure 8 A flowchart illustrating an example of a surface type detection method during cleaning operation 700 (e.g., wet cleaning operation). Method 700 can be performed after... Figures 5A-5DMethods 700, 7A, and 7B, are executed afterward, and an initial surface type map has been established. Therefore, method 700 can generally be described as dynamic surface type assessment, which allows the robotic cleaner to adjust its behavior based on changes that have occurred in the environment since the initial surface type map was developed.

[0078] Method 700 may be embodied as one or more instructions stored in one or more memories (e.g., non-transitory computer-readable storage), wherein the one or more instructions are configured to execute on one or more processors. For example, a controller may be configured to cause one or more steps of method 700 to be executed. Alternatively or additionally, one or more steps of method 700 may be executed in any combination of software, firmware, and / or circuitry (e.g., application-specific integrated circuits).

[0079] At operation 701, the robotic cleaner receives a cleaning request from a user (e.g., input from a remote device or a user interface on the robotic cleaner). In some cases, the robotic cleaner may receive general cleaning requests (e.g., requests that do not specify wet or dry cleaning). In these cases, the type of cleaning operation can be determined at least in part based on which module (e.g., a wet cleaning module) is coupled to the robotic cleaner. In some cases, the insertion of a cleaning module may be a cleaning request.

[0080] At operation 702, the robotic cleaner determines the type of the received request (e.g., a wet cleaning request or a dry cleaning request). At operation 704, if a wet cleaning request is received, the robotic cleaner loads an initial surface type map and associates the avoidance zone with the carpeted area. In some cases, the robotic cleaner may also associate the avoidance zone with an area with a high obstacle detection rate.

[0081] At operation 706, the robotic cleaner's navigation system generates a cleaning path. This generated path is configured to allow the robotic cleaner to avoid certain areas. In some cases, the navigation system can be configured to determine and generate the most efficient cleaning path for cleaning the designated area.

[0082] At operation 708, during the wet cleaning operation, the cleaning robot is traversed over the generated cleaning path. During operation 708, the robot cleaner can be configured to detect unexpected changes in surface type as it traverses the cleaning path. Unexpected changes in surface type can typically be described as changes not represented in the initial surface type map.

[0083] At operation 710, when an unexpected change in surface type is detected, the robotic cleaner determines the confidence level associated with the change in surface type. At operation 712, the robotic cleaner determines whether the confidence level meets or exceeds a predetermined threshold. At operation 714, if the confidence level meets or exceeds the predetermined threshold, the robotic cleaner will adjust its planned path to avoid changes in surface type. For example, if the robotic cleaner has a high confidence level in detecting new carpet, it will adjust its behavior to avoid traversing the carpet during wet cleaning. Any new changes in surface type detected during a cleaning operation can be added to the initial map for subsequent cleaning operations, thereby establishing one or more avoidance zones. For example, a change in surface type can be determined when the robotic cleaner detects a new surface type multiple times within a predetermined time and / or zone. At operation 716, if the confidence level does not meet or exceeds the threshold, the robotic cleaner will assume that the detected surface type change is erroneous and will continue to traverse the cleaning path, ignoring the erroneous surface type change.

[0084] Examples of the surface type detection method according to this disclosure may include: traversing a clean area; generating multiple clusters while traversing the clean area, each cluster being associated with a corresponding surface type and location; and determining at least one surface type region within the clean area based at least in part on the comparison of the multiple clusters.

[0085] In some cases, determining at least one surface type area may include comparing neighboring clusters. In some cases, determining at least one surface type area may include determining the cluster density of neighboring clusters and comparing the cluster density to a threshold. In some cases, the cluster density may be the number of neighboring clusters associated with a common surface type divided by the total number of neighboring clusters. In some cases, the common surface type may be carpet. In some cases, each cluster may be associated with a confidence value. In some cases, the confidence value may be determined at least in part based on comparisons of neighboring clusters. In some cases, the multiple clusters may be composite clusters, each composite cluster being generated at least in part based on comparisons of a first sensor cluster and a second sensor cluster, the first sensor cluster being generated using a first sensor output generated by a first sensor, and the second sensor cluster being generated using a second sensor output generated by a second sensor, the first and second sensors being different. In some cases, the first sensor output and the second sensor output may each be associated with a corresponding confidence value. In some cases, the method may also include generating a map of the cleaned area, the map including the multiple clusters.

[0086] Examples of robotic cleaners according to this disclosure may include: at least one drive wheel driven by a drive motor; at least one side brush driven by a side brush motor; a surface type sensor; and a controller configured to perform a surface type detection method. The method may include: causing the robotic cleaner to traverse a cleaning area; generating a plurality of clusters as it traverses the cleaning area using the surface type sensor, each cluster being associated with a corresponding surface type and location; and determining at least one surface type region within the cleaning area based at least in part on a comparison of the plurality of clusters.

[0087] In some cases, determining at least one surface type area may include comparing neighboring clusters. In some cases, determining at least one surface type area may include determining the cluster density of neighboring clusters and comparing the cluster density to a threshold. In some cases, the cluster density may be the number of neighboring clusters associated with a common surface type divided by the total number of neighboring clusters. In some cases, the common surface type may be carpet. In some cases, each cluster may be associated with a confidence value. In some cases, the confidence value may be determined at least in part based on comparisons of neighboring clusters. In some cases, multiple clusters may be composite clusters, each composite cluster being generated at least in part based on comparisons of a first sensor cluster and a second sensor cluster, the first sensor cluster being generated using a surface type sensor output generated by a surface type sensor, and the second sensor cluster being generated using a second sensor output generated by a second sensor associated with one of the drive motors or the side brush motors. In some cases, the surface type sensor output and the second sensor output may each be associated with a corresponding confidence value. In some cases, the method may also include generating a map of the cleaned area, the map including multiple clusters.

[0088] While the principles of the invention have been described herein, those skilled in the art will understand that this description is by way of example only and not as a limitation on the scope of the invention. Other embodiments, in addition to the exemplary embodiments shown and described herein, are also covered within the scope of the invention. Modifications and substitutions made by those skilled in the art are considered to be within the scope of the invention, which is not limited to anything other than the following claims.

Claims

1. A surface type detection method, the method comprising: Crossing the clean area; Multiple clusters are generated when traversing the cleaned area, each cluster being associated with a corresponding surface type and location; as well as At least one surface type region within the cleaning area is determined based, at least in part, on the comparison of the plurality of aggregation points. Determining the at least one surface type region includes: Compare neighboring clusters; Determine the cluster density of neighboring clusters; and The aggregation point density is compared with a threshold.

2. The method of claim 1, wherein the cluster density is the number of neighboring clusters associated with a common surface type divided by the total number of neighboring clusters.

3. The method of claim 2, wherein the common surface type is carpet.

4. The method of claim 1, wherein each cluster point is associated with a confidence value.

5. The method of claim 4, wherein the confidence value is determined at least in part based on comparisons of neighboring clusters.

6. The method of claim 1, wherein the plurality of clusters are composite clusters, each composite cluster being generated at least in part based on a comparison of a first sensor cluster and a second sensor cluster, the first sensor cluster being generated using a first sensor output generated by a first sensor, and the second sensor cluster being generated using a second sensor output generated by a second sensor, wherein the first sensor and the second sensor are different.

7. The method of claim 6, wherein the first sensor output and the second sensor output are each associated with a corresponding confidence value.

8. The method of claim 1, further comprising generating a map of the cleaned area, the map including the plurality of clusters.

9. A robotic cleaner, the robotic cleaner comprising: At least one drive wheel driven by a drive motor; At least one side brush driven by a side brush motor; Surface type sensor; as well as A controller configured to perform a surface type detection method, the method comprising: The robotic cleaner is moved across the cleaning area. The surface type sensor generates multiple clusters as the user traverses the cleaned area, each cluster being associated with a corresponding surface type and location; and At least one surface type region within the cleaning area is determined based, at least in part, on the comparison of the plurality of aggregation points. Determining the at least one surface type region includes: Compare neighboring clusters; Determine the cluster density of neighboring clusters; and The aggregation point density is compared with a threshold.

10. The robotic cleaner of claim 9, wherein the cluster density is the number of neighboring clusters associated with a common surface type divided by the total number of neighboring clusters.

11. The robotic cleaner of claim 10, wherein the common surface type is carpet.

12. The robotic cleaner of claim 9, wherein each cluster point is associated with a confidence value.

13. The robotic cleaner of claim 12, wherein the confidence value is determined at least in part based on comparisons of neighboring clusters.

14. The robotic cleaner of claim 9, wherein the plurality of focal points are composite focal points, each composite focal point being generated at least in part based on a comparison of a first sensor focal point with a second sensor focal point, the first sensor focal point being generated using a surface type sensor output generated by the surface type sensor, and the second sensor focal point being generated using a second sensor output generated by a second sensor associated with one of the drive motors or the side brush motors.

15. The robotic cleaner of claim 14, wherein the surface type sensor output and the second sensor output are each associated with a corresponding confidence value.

16. The robotic cleaner of claim 9, further comprising generating a map of the cleaning area, the map including the plurality of cluster points.