METHOD FOR MODIFYING AN ONBOARD CONTROL SYSTEM OF A POOL CLEANER, AND POWER SOURCE FOR A POOL CLEANER

20180224856 ยท 2018-08-09

    Inventors

    Cpc classification

    International classification

    Abstract

    An onboard control system of an electrically powered pool cleaner (3) is disclosed. The disclosed system is configured to operate the pool cleaner in accordance with a setup (A, B, C) of the onboard control system (350). The pool cleaner is configured for receiving electrical power via a cable (2) connecting the pool cleaner (3) to a power source (1). A method for operating an automatic pool cleaner with segmented cleaning setup data is also disclosed and includes determining that the automatic pool cleaner is disposed in a particular segment of a pool based on outputs from one or more onboard sensors; and controlling movement of the automatic pool cleaner along a surface of the pool based on the determining so that the automatic pool cleaner spends a predetermined amount of time in the particular segment of the pool.

    Claims

    1. An automatic pool cleaner comprising: one or more onboard sensors configured to detect an orientation of the automatic pool cleaner with respect to a surface of a pool; and an onboard control system configured to: determine, based on outputs from the one or more onboard sensors, that the automatic pool cleaner is disposed in a particular segment of the pool; and control movement of the automatic pool cleaner along the surface of the pool based on the determining so that the automatic pool cleaner spends a predetermined amount of time in the particular segment of the pool.

    2. The automatic pool cleaner of claim 1, wherein the predetermined amount of time is determined based on a user input.

    3. The automatic pool cleaner of claim 1, wherein the particular segment is selected from a group including: a deep section of the pool, a shallow section of the pool, a sloped section extending between the shallow section and the deep section, and a wall section.

    4. The automatic pool cleaner of claim 1, wherein in controlling the movement of the automatic pool cleaner, the onboard control system is configured to: cause the automatic pool cleaner to exit the particular segment and move to a next segment after the predetermined amount of time.

    5. The automatic pool cleaner of claim 4, wherein: the particular segment is selected from a group including: a deep section of the pool, a shallow section of the pool, or a sloped section extending between the shallow section and the deep section; and the next segment is a different segment from the group that is adjacent to the particular segment.

    6. The automatic pool cleaner of claim 1, wherein in controlling the movement of the automatic pool cleaner, the onboard control system is configured to: cause the automatic pool cleaner to return to the particular segment if the automatic pool cleaner begins to exit the current segment before the predetermined amount of time.

    7. The automatic pool cleaner of claim 6, wherein in controlling the movement of the automatic pool cleaner, the onboard control system is configured to: allow the automatic pool cleaner to continue exiting the particular segment if the predetermined amount of time expires during the exit.

    8. The automatic pool cleaner of claim 7, wherein in allowing the automatic pool cleaner to continue exiting the particular segment, the onboard control system is configured to: upon detecting that the exit is a wall exit, cause the automatic pool cleaner to move from the wall exit to a segment-to-segment exit.

    9. The automatic pool cleaner of claim 1, wherein the one or more onboard sensors measure tilt angles about at least two of: a pitch axis, a roll axis, and a yaw axis, to detect the orientation of the automatic pool cleaner.

    10. The automatic pool cleaner of claim 9, wherein the one or more onboard sensors comprise at least one accelerometer or tilt sensor.

    11. A method for operating an automatic pool cleaner comprising: determining, based on outputs from one or more onboard sensors configured to detect an orientation of the automatic pool cleaner with respect to a surface of a pool, that the automatic pool cleaner is disposed in a particular segment of the pool; and controlling movement of the automatic pool cleaner along the surface of the pool based on the determining so that the automatic pool cleaner spends a predetermined amount of time in the particular segment of the pool.

    12. The method of claim 11, wherein the predetermined amount of time is determined based on a user input.

    13. The method of claim 11, wherein the particular segment is selected from a group including: a deep section of the pool, a shallow section of the pool, a sloped section extending between the shallow section and the deep section, and a wall section.

    14. The method of claim 11, wherein the controlling further comprises: causing the automatic pool cleaner to exit the particular segment and move to a next segment after the predetermined amount of time.

    15. The method of claim 14, wherein: the particular segment is selected from a group including: a deep section of the pool, a shallow section of the pool, or a sloped section extending between the shallow section and the deep section; and the next segment is a different segment from the group that is adjacent to the particular segment.

    16. The method of claim 11, wherein the controlling further comprises: causing the automatic pool cleaner to return to the particular segment if the automatic pool cleaner begins to exit the current segment before the predetermined amount of time.

    17. The method of claim 16, wherein the controlling further comprises: allow the automatic pool cleaner to continue exiting the particular segment if the predetermined amount of time expires during the exit.

    18. The method of claim 11, wherein the one or more onboard sensors measure tilt angles about at least two of: a pitch axis, a roll axis, and a yaw axis, to detect the orientation of the automatic pool cleaner

    19. The method of claim 18, wherein the one or more onboard sensors comprise at least one accelerometer or tilt sensor.

    20. The method of claim 11, wherein the determining and the controlling is performed by an onboard control system included in the automatic pool cleaner.

    Description

    BRIEF DESCRIPTION OF THE DRAWINGS

    [0065] The drawings referenced below simply serve as examples of how the invention can be carried out, by illustrating embodiments of the invention, and should not be interpreted as restricting the scope of the invention.

    [0066] FIG. 1 is a schematic perspective view of a system in accordance with an embodiment of the invention implemented in correspondence with a swimming pool.

    [0067] FIG. 2 is a perspective view of a pool cleaner in accordance with an embodiment of the invention.

    [0068] FIG. 3 schematically illustrates the control system integrated in a pool cleaner in accordance with an embodiment of the invention.

    [0069] FIG. 4 schematically illustrates the interaction between different components of a system, in accordance with an embodiment of the invention.

    [0070] FIG. 5 schematically illustrates some components of the power supply in accordance with an embodiment of the invention.

    [0071] FIG. 6 is a flowchart showing operation in accordance with an embodiment of the invention.

    [0072] FIG. 7 is a flowchart showing operations of the onboard control system when implementing a particular set of setup data, in accordance with an embodiment of the invention.

    [0073] Like reference numerals have been used to identify like elements throughout this disclosure.

    DETAILED DESCRIPTION OF A WAY OF CARRYING OUT THE INVENTION

    [0074] FIG. 1 illustrates a pool cleaner 3 moving on the bottom surface 1001 of a swimming pool 1000, following a path 1002. The pool cleaner receives electrical power from a remote power source 1 via a power cable 2. The power source 1 is, in this embodiment, a pool side power source placed a couple of meters from the edge of the swimming pool, and connected to an external power grid via a cable 120. That is, the power source 1 is connected to the pool cleaner 3 by one cable 2 and to the power grid by another cable 120. The power source 1 comprises, in the illustrated embodiment, a communication module or means for wireless communication with a user terminal 4 such as smartphone or tablet computer. The user terminal 4 is provided with its own a communication module or means for wireless communication with a local communication node 5, through which the terminal 4 can establish communication with a remote computer or computer system 6, over a network 2000.

    [0075] FIG. 2 shows how, in this embodiment, the pool cleaner 3 may comprise a housing 301, a connection 302 for receiving the power cable 2, drive wheels 303 and track 304 for moving pool cleaner 3, a brush 305 for uses known in the art, a handle 306 for uses known in the art, and a pump outlet 307 for a pump unit. Water is typically sucked in through inlets arranged in correspondence with the bottom of the housing 301 of pool cleaner 3, so that it passes through at least one filter wall of a filter assembly arranged within the pool cleaner 3, before exiting through the outlet 307, so that debris is retained within the pool cleaner 3, by the filter.

    [0076] FIG. 3 schematically illustrates how the pool cleaner 3 may comprise an onboard control system 350 arranged to interact with different components of the pool cleaner so as to operate the pool cleaner in accordance with a setup of the onboard control system, the setup being schematically illustrated by a set of setup data A loaded in a memory 351 of the onboard control system 350. The onboard control system 350 is operatively connected to a drive motor 361 for driving the wheels 303 and track 304 and, in some embodiments, also the brush 305. The onboard control system 350 is further operatively connected to a motor 362 for driving the pump 363. In some embodiments, one and the same motor is used for driving both the wheels 303 and tracks 304 and/or other means for displacing the robot and for driving the pump 363. In other embodiments, different motors are used. The onboard control system 350 operates the motors 361 and 362 in accordance with the setup of the onboard control system, that is, in accordance with the software A loaded in the onboard control system.

    [0077] In the illustrated embodiment, the pool cleaner also includes sensors, such as a tilt sensor 371 and a proximity sensor 372, which are connected to the onboard control system 350 to allow the onboard control system to read sensor data from the sensors. The reaction of the pool cleaner 3 in response to the output from the sensors, for example, in terms of operation of one or both motors 361 and 362, and/or in terms of operation of one or both tracks 304, may depend on the setup of the onboard control system 350. For example, motors 361 and 362 may operate to cause the pool cleaner 3 to remain in (or exit from) a certain segment of a pool if the onboard control system is operating in accordance with setup data from a segmented pool cleaning program, as is described in further detail below in connection with FIG. 7.

    [0078] Thus, the setup of the onboard control system 350 can determine aspects such as duration of a cleaning cycle, frequency of cleaning cycle, and operation of the drive means or motors, for example, in order to follow a given path and/or in terms of the reaction to sensor output such as, for example, detection of proximity to a vertical wall, etc. Additionally, the onboard control system 350 can determine a location of the pool cleaner 3 within a pool based on sensor output, such as tilt sensor and proximity sensor output.

    [0079] Further examples of sensors that may be incorporated into the pool cleaner 3 include a sensor that detects clogging of filter walls by sensing operational parameters of the motor 362 driving the pump. The setup of the onboard control system 350 can determine, for example, whether to perform a backwash operation in response to sensed operational parameters of the motor 362 such as measured torque. In another setup of the onboard control system 350, backwash can be carried out with a predetermined frequency, independently of how the pump motor 362 operates.

    [0080] A given setup of the pool cleaner 3 may be considered preferred under certain circumstances, for example, given a certain swimming pool size or type, given a certain time of the year, etc. Thus, sometimes a user may wish to modify the setup, for example, to increase the frequency and/or duration of the cleaning cycles carried out by the pool cleaner 3. A user may also wish to modify the setup to focus the pool cleaner 3 on a particular section of a pool.

    [0081] FIG. 4 shows how a user, from a user terminal 4, establishes 401 a session accessing an external computer system 6 over a network 2000 such as the internet. The user can, for example, accesses a computer program incorporating a graphical user interface, and select parameters based on the pool in which the pool cleaner 3 will operate. A session 402 is established between the user and the external computer system 6, whereby the user, using for example a graphical interface program, selects certain parameters, and receives pool cleaner control system setup data B from the external computer system 6. For example, the user can provide parameters such as size and shape of a swimming pool to a computer system 6 related to the manufacturer or supplier of the pool cleaner 3, and receive 403 setup data B that, when loaded into the onboard control system 350 of the pool cleaner 3, causes the pool cleaner 3 to operate in a manner considered appropriate for a swimming pool featuring these parameters. For example, the setup data B may cause the pool cleaner 3 to clean the pool in a sectional or segmented manner, as is explained in detail below in connection with FIG. 7.

    [0082] Next, a session 404 of communication is established between the user terminal 4 and the power source 1. Here, the setup data B are forwarded from the user terminal 4 to the power source 1, together with instructions to upload the setup data B to the pool cleaner 3.

    [0083] In the following step, the power source attempts 405 to establish a session with the pool cleaner 3, but detects that the pool cleaner 3 is not available, for example, because it is turned off or because the cable 2 is not connected to the power source 1 (for example, because the pool cleaner 3 is stored somewhere else, in use in another swimming pool, etc.). The power source 1 then stores 406 the setup data B in an internal memory 101 of the power source 1.

    [0084] When the power source 1 detects 407 that the pool cleaner 3 is available for receiving the setup data, a session 408 is established between the power source 1 and the pool cleaner 3, whereby the setup data B are transferred from the memory 101 of the power source 1 to the onboard control system 350 of the pool cleaner 3, via the power cable 2, for example, replacing previous setup data A and thereby modifying the way in which the pool cleaner 3 will operate.

    [0085] In some embodiments, the power source 1 does not initiate steps 405 or 408 before receiving instructions 409 from the user terminal 4 indicating that the setup data B are to be transferred to the pool cleaner 3. That is, in some embodiments, setup data B are stored in the memory 101 of the power source 1, until the user triggers 409 transfer to the pool cleaner 3.

    [0086] FIG. 5 schematically illustrates the layout of a power source 1 in accordance with an embodiment of the invention. The power source 1 is connectable to an electrical network (not shown, but typically the general power supply grid) via a cable 120. Cable 120 connects the electrical network to internal power supply 141 of the power source 1, which is connectable to the power supply cable 2 of the pool cleaner 3 via a power interface 140. So far, the power source 1 can be constituted substantially as a conventional power source of the type that is used to supply power to a pool cleaner while receiving power from the power grid.

    [0087] However, in this embodiment of the invention, the power source 1 further includes means for wireless communication or wireless communications module 102 (for example, adapted for communication according to a protocol such as wifi or Bluetooth) and means for wired communication or wired communication device 103 (such as a USB port). Thereby, communication with a user terminal 4 is possible, allowing the user to forward the setup data B to the power source 1, to be forwarded to the pool cleaner 3 or stored in the memory 101 of the power source 1. From this memory 101, the setup data can be uploaded to the pool cleaner 3 via the cable 2, via a communication interface 104 operatively connected with the power interface 140.

    [0088] FIG. 5 schematically illustrates how a plurality of sets of setup data A, B and C are stored in the memory 101 of the power source 1. This is so in accordance with an embodiment, in which a user can obtain different sets of setup data and store them in the memory 101 of the power source 1. Thereafter, whenever desired, for example, depending on the weather, the time of the year, the kind of swimming pool to be cleaned, etc., the user can upload a selected one of said sets of setup data to the pool cleaner 3, thereby modifying the way in which it will operate.

    [0089] In some embodiments of the invention, the user can choose between an immediate update option, in which the new setup data are uploaded directly to the pool cleaner 3, if it is available for such an upload, and a delayed update option, in which the setup data are stored in the memory 101 of the power source 1 until a trigger action is performed by the user, triggering the upload.

    [0090] One example of such an embodiment is illustrated in FIG. 6. In a first step 601 the user uploads, from a user terminal 4 or other suitable means, the relevant setup data to the power source 1. The power source verifies 602 if the pool cleaner 3 is available for uploading the setup data via the power cable 2 and, if it is, the power source 1 verifies 603 if an immediate update option has been selected. If the outcome of these two verifications is positive, the power source 1 transmits 604 the new setup data to the pool cleaner 3, thereby updating the setup of the onboard control system 350 thereof. If the outcome of one of the two verifications is negative, the new setup data are stored 605 in the memory 101 of the power source 1.

    [0091] At this stage, the user can then trigger an upload of the setup data to the pool cleaner 3 by selecting an upload now option. While this option is selected 606, the power source 1 monitors 607 the connection to the pool cleaner 3 to detect when the pool cleaner 3 is connected to the power source 1 and turned on and, once turned on, transmits the setup data to the pool cleaner 3, thereby updating the onboard control system 350 thereof.

    [0092] FIG. 7 provides one example embodiment of setup data that can be transferred to the pool cleaner (e.g., at step 604 of FIG. 6). At a high-level, the setup data depicted in FIG. 7 is a program for segmented or sectional pool cleaning. The program utilizes outputs from sensors, such as one or more gyroscopic sensors (or other such tilt sensors), one or more accelerometers, and/or one or more proximity sensors, to determine a segment of a pool in which the pool cleaner is disposed. Then, the program causes the onboard control system to control motors included in the pool cleaner (e.g., motors 361 and 362) to either cause the pool cleaner to remain in a particular segment (e.g., the deep end) or move to a new segment.

    [0093] More specifically, when the pool cleaner is powered on and inserted into the pool, the setup data causes the pool cleaner peripherals to initialize at 702 so that the onboard control system can compute the current pitch, roll, and yaw of the pool cleaner at 704. For example, an accelerometer and gyroscope may initialize at 702 so that the onboard control system can compute the current pitch, roll, and yaw at 704. Based on these computations, the onboard control system determines, at 706, whether the pool cleaner is on a flat surface or a sloped surface. After making this determination at 706, the onboard control system establishes a cleaning history. Generally, the segmented pool cleaning program causes the pool cleaner to clean the pool in a continual pattern of segments. Thus, establishing a cleaning history sets a starting point within this pattern. For example, if a pool has a deep end, shallow end and a sloped section extending therebetween, the pattern may be a loop of the following pattern: clean the shallow end, clean the sloped section, clean the deep end, clean the sloped section, clean the shallow end, etc., so that the pool cleaner continually covers the entire pool in a segmented manner. However, on the other hand, not all pools include deep ends and shallow ends separated by a slope. For example, some pools may be completely flat or continually sloped.

    [0094] To accommodate various pools, if the onboard control system detects a flat surface at 706 (e.g., an accelerometer indicates that the pool cleaner is resting on a flat surface), the onboard control system, based on instructions from the segmented pool cleaning setup data, assumes, at 708, that a pool is completely flat and sets the history sets the history to shallow at times T1, T2, and T3. Then, the onboard control system sets the current segment to shallow at 710. On the other hand, if the onboard control system detects a sloped surface at 706 (e.g., the accelerometer indicates that the pool cleaner is resting on an inclined or declined, non-wall surface) the onboard control system, based on instructions from the segmented pool cleaning setup data, assumes, at 712, that the pool has a deep end and a shallow end separated by a sloped section and sets the history to slope, deep, and slope at times T1, T2, and T3, respectively. In some pools, the deep section and shallow section may have a slight slope. Consequently, in at least some embodiments, the onboard control system detects a sloped surface at 706 when the slope is between 15-25 degrees. Otherwise, the onboard control system detects a wall (greater than 25 degrees) or a flat section (less than 15 degrees). Regardless of how the onboard control system detects a sloped surface at 706, once a sloped surface is detected, the onboard control system sets the current segment to slope at 714. That is, the onboard control system selects a starting point within the pattern mentioned above.

    [0095] After establishing the cleaning history and current segment at 708 and 710 or 712 and 714, the program causes the onboard control system to begin to execute a cleaner movement while monitoring sensor outputs (e.g., outputs from a gyroscope and/or accelerometer, or any tilt sensor and/or proximity sensor) at 720. The cleaner movement operates in the segment of the pool in which the pool cleaner was initially inserted. For example, if the pool cleaner is initially dropped into the deep end of the pool, the first cleaner movement will execute in the deep end. The cleaner movement may be any cleaner movement pattern now known or developed hereafter, whether sensor-based (e.g., automatic), timer based, and/or other any other such movement, such as wall-to-wall cleaning, follow-the-wall cleaning, radial cleaning patterns, etc. In at least some embodiments, the onboard control system may begin to execute a cleaner movement that is specific to the particular pool segment in which the onboard control system believes the pool cleaner is disposed (e.g., a slope-specific cleaning program if the onboard control system determines, at 714 that the pool cleaner is disposed in a sloped surface). The onboard control system also initializes a timer when the cleaner movement begins at 720.

    [0096] At 722, the onboard control system determines, based on the sensor outputs, whether the pool cleaner is exiting its current segment. For example, if the pool cleaner is detecting that the pool cleaner is on a sloped surface, the pool cleaner may detect an exit when the slope no longer exists or changes (positively or negatively) by a predetermined amount (e.g., 15 degrees or more, 30 degrees or more, 45 degrees or more, etc.). Alternatively, if the pool cleaner is detecting that the pool cleaner is on a flat surface, the pool cleaner may detect an exit when the pool cleaner detects a sloped surface. Still further, in some embodiments, the onboard control system may determine that the pool cleaner is exiting its current segment when the pool cleaner traverses a predetermined percentage of a major dimension of a pool. For example, if a pool is sloped from one end to the other with a relatively constant slope, the onboard control system may use a predetermined length of the pool to delineate segments of the pool (e.g., the pool may be divided into three equally sized segments that each span one-third of the overall length of the pool). In these embodiments, it may be necessary to map the pool prior to implementing segmented cleaning (e.g., with data input by a user and/or via sensor-based mapping).

    [0097] In at least some embodiments, a pool cleaner can exit its current segment by moving (e.g., driving) between flat and sloped sections (a segment-to-segment or non-wall exit) or by driving off of/onto a wall (a wall exit). The onboard control system monitors sensor outputs at 722 to distinguish between these two types of exits. That is, the onboard control system determines if the pool cleaner is: (1) moving from a flat or sloped surface onto a different flat or sloped surface; or (2) moving between a flat or sloped surface and a wall. Put still another way, orientation determinations made in view of sensor outputs from accelerometers, gyroscopic sensors, and/or other sensors may be able to distinguish between wall exits and non-wall exits (e.g., the onboard control system may determine if pitch and roll readings are indicative of cleaner moving from a flat surface to a sloped surface, a flat surface to a wall, a sloped surface to a flat surface, a sloped surface to a wall, or any other such exit).

    [0098] If, at 722, the onboard control system determines that the pool cleaner has not exited the current segment, the onboard control system determines, at 724, whether the current segment timeout has been reached. In some embodiments, the timeout is strictly time-based. Alternatively, the timeout may be based on a timer and/or sensor feedback related to the cleanliness of a pool section. That is, the value (e.g., length) of the timeout may be a predetermined setting or a setting that is dynamically determined based on a size of a particular pool segment, a time of year, user inputs, or any other factors, including cleanliness of a pool segment, which may be determined based on sensor feedback, for example, in the manner discussed in U.S. Pat. No. 9,506,262, which is hereby incorporated by reference in its entirety. If the timeout has not been reached (and the pool cleaner has not exited its current segment), the onboard control system continues to execute the cleaning movement initiated at 720 (while continuing to determine if the pool cleaning is exiting the segment and if the segment timeout has been reached at 722 and 724, respectively). Put plainly, if the pool cleaner has not spent too much time in a particular pool segment (i.e., if the pool cleaner is in a segment for a period of time less than the timeout) and/or the particular pool segment is not yet clean, the pool cleaner will continue to clean that segment.

    [0099] If, instead, the segment timeout is determined to have been reached at 724, the segmented program setup data causes the onboard control system to determine that the pool cleaner should exit the current segment and move to a new segment. That is, if the pool cleaner has spent too much time in a particular pool section/segment, the onboard control system determines, at 724, that it is time to leave this section/segment and, at 726, causes the pool cleaner to move to a next section/segment of the pool. In at least some embodiments, moving to a next segment may be effectuated by searching for a slope in the pool, causing the one or more motors to drive towards a slope pre-identified in the setup data, or causing the one or more motors to drive towards a previously identified slope (e.g., a slope identified unintentionally at 722). This may ensure that the pool cleaner does not get stuck in a certain segment (e.g., the shallow end). In these embodiments, the next segment may be determined based on the overall pattern of shallow-slope-deep-slope-shallow-slope-deep, and the method for determining the next segment is described in further detail below in connection with steps 740, 745, and 750. However, in other embodiments, other patterns may be used and, thus, the exit may involve searching for other features of the pool. For example, a pattern may incorporate wall cleaning segments and to enter/exit these segments, the pool cleaner may search for a transition between a wall and a sloped or flat surface (e.g., a wall exit).

    [0100] Now turning back to 722, if the onboard control system determines at 722 that the pool cleaner has exited the current segment on its own (e.g., by naturally or unintentionally beginning to drive into a new segment or beginning to climb a wall while executing the cleaner movement from 720), the onboard control system checks the timeout at 732 to determine whether the segment timeout of the current segment has been reached. That is, at 732, the onboard control system determines whether the pool cleaner should be allowed to leave the current section/segment. For example, if the pool cleaner is executing a wall-to-wall cleaning pattern in the shallow end and unintentionally moves onto the sloped section of the pool, the onboard control system may determine if the pool cleaner should return to the shallow end or simply continue its movement and begin cleaning the sloped section. In at least some embodiments, the timeout is enforced strictly at 724 but enforced with at least some leniency at 732. For example, if the timer imitated at 720 has reached a predetermined percentage of the timeout, such as 75%, 80%, 85%, etc., this may be sufficient to consider the timeout reached at 732. This leniency may ensure that a pool cleaner is not sent back into a segment when the pool cleaner has nearly completed cleaning a specific section. However, in other embodiments, the timeout may be strictly enforced at 732.

    [0101] Regardless of how the timeout is enforced at 732, if a determination of no is made at 732, the onboard control system issues instructions to the motors that cause the pool cleaner to return to the shallow end at 734. Notably, since the pool cleaner will return to its current segment, the onboard control system need not determine if the pool cleaner is exiting its current segment via a wall or a sloped section. That is, the onboard control will cause the pool cleaner to return to its current section regardless of whether the pool cleaner is exiting the current segment via a wall or by moving into a next segment.

    [0102] In some embodiments, the onboard control system may constantly monitor the timer to determine if a timeout occurs during a return to the current segment (e.g., there may be a feedback loop between 734 and 732) and, if the timeout has been satisfied, the pool cleaner may abandon the return and simply proceed to the next segment (e.g., in accordance with steps 736 and 726). Alternatively, in other embodiments, the timer may be temporarily paused, during an unintentional exit and return executed at 722, 732, and 734. This pause may ensure that the pool cleaner does not satisfy the timeout threshold for a particular segment while the cleaner is actually disposed in other sections (and not cleaning the segment to which the timeout applies). That is, the pause in the timeout timer may ensure that the pool cleaner spends a designated amount of time in particular section, regardless of temporary exits.

    [0103] On the other hand, if the timeout has been reached and the onboard control system is going to allow the pool cleaner to exit the current segment, the onboard control system determines if the pool cleaner is exiting the current segment by driving into an adjacent section/segment of the pool or by moving up a wall. This determination is made at 736. In at least some embodiments, if the pool cleaner is not moving up a wall, the pool cleaner may simply continue its movement into the next section/segment of the pool in accordance with steps 740, 745, and 750, which are described in detail below. If, instead, the pool cleaner is determined to be moving up a wall at 738, the onboard control system may, in at least some embodiments (e.g., embodiments utilizing the pattern of shallow-slope-deep-slope-shallow-slope-deep), issues instructions, at 726, to the motors that cause the pool cleaner to move to the next segment. Alternatively, if the pool cleaner is utilizing a cleaning pattern with wall cleaning segments, the pool cleaner may allow a pool cleaner to continue onto a wall until the pool cleaner determines if the wall is the proper next segment. In fact, in embodiments with wall cleaning segments, the onboard control system may not need to determine if the pool cleaner is exiting a wall at 736 (and, instead, may proceed directly from 732 to 726 (and then to 740, etc.)).

    [0104] Regardless of why the pool cleaner exits its current section/segment and moves into a next section/segment of the pool, the onboard control system analyzes sensor outputs as the pool cleaner enters the next segment of the pool. Based on this analysis, the onboard control system determines, at 740, if the segment that the pool cleaner is exiting was correctly identified during initialization. For example, if the pool cleaner is exiting a segment identified as a shallow end and the onboard control system detects an upwards, non-wall slope, the onboard control system may determine that the previous segment was incorrectly identified (since the shallow end is typically only adjacent to a downwards slope). As another example, if the pool cleaner is exiting a segment identified as a deep end and the onboard control system detects a downwards, non-wall slope, the onboard control system may determine that the previous segment was incorrectly identified (since the deep end is typically only adjacent to an upwards slope). As still another example, if the pool cleaner is exiting a segment identified as part of a completely flat pool and the onboard control system detects a non-wall slope, the onboard control system may determine that the previous segment was incorrectly identified.

    [0105] If an error is found at 740 (i.e., if the previous segment was not correctly identified), the cleaning history set during initialization is also likely to be incorrect. Thus, if an error is found at 740, the cleaning history is corrected at 745. Using the same examples laid out above, if the onboard control system determines that a segment identified as a shallow end is actually a deep end, the three-time period cleaning history (with the third entry showing the segment which the cleaner is exiting) may be changed from deep-slope-shallow to shallow-slope-deep. Similarly, if the onboard control system determines that a segment identified as a deep end is actually a shallow end, the three-time period cleaning history may be changed from shallow-slope-deep to deep-slope-shallow. In the last example laid out above (where a pool with a slope was misidentified as a completely flat pool), the history shallow-shallow-shallow may be changed to shallow-slope-deep or deep-slope-shallow depending on the non-wall slope now detected by the pool cleaner (with an incline indicating that the most recent segment was the deep end and decline indicating that the most recent segment was the shallow end). That is, in the last example, the onboard control system determines that the pool is not completely flat and adopts the cleaning pattern for a pool with a deep end and a shallow end that are separated by a sloped section (as discussed above, the pattern causes the pool cleaner to clean the entire pool in a segmented manner).

    [0106] Once the cleaning history and previous segment are corrected or confirmed to be correct, the onboard control system can determine the next segment to clean at 750 and set the next segment as the current segment at 755. At 750, some example determinations, determined based on the pattern discussed above, are shown. First, if the cleaning history shows T2=slope and T3=shallow, these data entries are each moved back in the history (to T1 and T2, respectively) and the current segment is set to slope (T3=slope). Second, if the cleaning history shows T2=slope and T3=deep, these data entries are each moved back in the history (to T1 and T2, respectively) and the current segment is set to slope (T3=slope). Third, if the cleaning history shows T2=shallow and T3=slope, these data entries are each moved back in the history (to T1 and T2, respectively) and the current segment is set to deep (T3=deep). Fourth, if the cleaning history shows T2=deep and T3=slope, these data entries are each moved back in the history (to T1 and T2, respectively) and the current segment is set to shallow (T3=shallow). Notably, although not shown in the flow chart of FIG. 7, in at least some embodiments, the segmented cleaning setup data may cause the onboard control system to determine whether the current segment and cleaning history are correct (via the steps shown at 740, 745) during temporary exits (e.g., as the pool cleaner returns to a current segment at 734). Additionally or alternatively, in some embodiments, the onboard control system may only determine whether the current segment and cleaning history are correct (via the steps shown at 740, 745), a single time (and may operate with the corrected or confirmed cleaning history for the remainder of a cleaning session).

    [0107] In this text, the term comprises and its derivations (such as comprising, etc.) should not be understood in an excluding sense, that is, these terms should not be interpreted as excluding the possibility that what is described and defined may include further elements, steps, etc.

    [0108] The invention is obviously not limited to the specific embodiment(s) described herein, but also encompasses any variations that may be considered by any person skilled in the art (for example, as regards the choice of materials, dimensions, components, configuration, etc.), within the general scope of the invention as defined in the claims.