Why is there no systematic and reproducible cleaning?

rorororororo Member

Dear Electrolux staff,

I hope you are well despite the current pandemic situation.

I've been using a Purei9.2 PI92-6DGM for about 9 months now. The robot has the latest firmware, the app is the most recent version. Every once in a while I'll come home while it is cleaning my appartment, and almost every time I feel the urge to post here about its behaviour - now I finally do.

The size of my appartment, according to the app, is roughly 42m2. All rooms have laminate or tiles, there are no rugs etc. Almost all of the furniture positions etc. are static, so are the doors. Those few things (2..3 chairs) that change position between cleanings I will move to fixed locations on the morning before cleaning starts, so their position varies by less than 5cm each time. I'm working in R&D myself so I've done quite bit of testing and when I write "static", I mean static ;-)

Still, the cleaned area shown by the app will vary between 41 and 44m2. What's worse, sometimes the robot will finish cleaning within approx. 44min, sometimes it takes 52min. While the shorter times require no in-charging, the longer times do, stretching the cleaning process to a total of more than 2h.

The reason for this behaviour is obvious: The robot simply does no systematic and reproducible cleaning. Without apparent reason, it will change rooms when the current room is not finished yet, just to return to it later to clean a "missed" area of half a square meter or larger. I've just observed it again and with the 4 rooms in question, it visited each room at least twice.

As most forum members, I've reset the robot, deleted maps and let it re-scan the whole place, I've had it clean with and without WiFi enabled. I've emptied the dustbin to reduce airflow resistance, I've cleaned the camera and laser windows, I've made sure brushes and wheels are clean and move freely. The charger is in an easily accessible location and I've tried other locations before.

Now would you mind answering me that simple question: Why, in this static environment, is it impossible to have the robot do the regular cleaning in a systematic and reproducible fashion?

Looking forward to your answers.
Cheers,
r.

Comments

  • mrmegadethmrmegadeth Member ✭✭✭

    Are you changing the lighting in the house or the configuration of drapes/blinds? The bot can be affected by sources of UV light.

  • rorororororo Member

    Thanks, that's a valid point, but it does not apply for me. The bot is scheduled for the same time of the day before noon and curtains / drapes are open.

    Furthermore, I would expect this to have an impact on navigation rather than on the cleaning algorithm. When I check the cleaning path on the app the bots seems to navigate fine - it will just abort cleaning rooms before they're finished, and this can also be followed in the app.

    Cheers,
    r.

  • frekanfrekan Member, Moderator mod

    Hi,

    The cleaning is systematic in the sense that it is executed according to a set of rules. To mention a couple:

    1) The robot will work its way through the floor plan by cleaning regions that are up to approximately 2x2m, one at a time. While cleaning, these regions may be broken up into smaller pieces, each of which will be cleaned before the robot proceeds to the next 2x2m region. Each region is cleaned in an inward spiral pattern.

    2) The robot will attempt to clean on one side of a threshold before it climbs over to the other side. But if there is no threshold the robot can go in and out of a room, same as it would if there was any other narrow passage (other than a door post).

    Now to your question: With a fixed set of rules, why does the robot behave differently in different runs (i.e. not reproducible)?
    The short answer is sensor noise and intentional randomness. The robot uses a number of sensors (a 3D camera and wheel motion measurements to name a few). The readings are not perfect and the robot will perceive the world slightly differently across different runs. Small variations can affect where a cleaning region ends and the next one starts or if an elevation in the floor is low enough to disregard as a threshold etc. These are examples of things that can cause the robot to clean the floor in varying order.
    In addition to this there is also some intentional randomness in certain situations to make sure that the robot does not make the same mistake or sub-optimal operation multiple times.

    I hope this answers your question!

  • rorororororo Member
    edited August 21

    Hi,

    thanks for the detailled answer. However, at least for me it doesn't explain the following behaviour: In my appartment, the rooms are linked by a hallway which is significantly longer than wide. Doorsteps are not present, that is, there is only a flat metal profile of less than 5mm in height which is conceiling the laminate gap between rooms.

    When the bot aborts cleaning a room although it is not finished yet, I will in almost all cases do so at the far end of the room, that is, near the outer boundary of the map. It will then transition to the next room to do most of the cleaning there, but leave some uncleaned area, again at a part of the room which is - most times - farthest away from the hallway. Then goes back to one of the rooms which have not been finished yet, etc. The unfinished areas are not close to each other, but most times in rooms which are on opposite sides of the hallway.

    In this way, the bot makes at least 2..4 unnecessary transitions between rooms and, even worse, thereby seemingly trying to maximise travel path. During these journeys the bot also passes ground that has been cleaned already, that is, especially areas close to or in the hallway. To be honest, this part of the cleaning algorithm does not appear particularly efficient or systematic to me ;-) In those cases where the bot makes less unnecessary transitions, it will finish the whole appartment without in-charging.

    Any ideas about this?

    Cheers,
    r.

  • apjapj Member
    edited August 23

    @rororo said:

    In this way, the bot makes at least 2..4 unnecessary transitions between rooms and, even worse, thereby seemingly trying to maximise travel path. During these journeys the bot also passes ground that has been cleaned already, that is, especially areas close to or in the hallway. To be honest, this part of the cleaning algorithm does not appear particularly efficient or systematic to me ;-) In those cases where the bot makes less unnecessary transitions, it will finish the whole appartment without in-charging.

    I'm seeing the same thing with mine. By my observation it is more prone to these "excursions" if it is cloud-connected than when working autonomously.
    You might wonder how I can tell that? Well, there are efficient cleaning cycles in one go and others, like the one depicted below with a pit stop in between.

    @frekan : How would you explain the quite inefficient travels between rooms in my case? Mind, there are no thresholds whatsoever between the rooms.



  • frekanfrekan Member, Moderator mod

    Thanks for clear explanations @rororo and @apj !
    There are more factors than minimizing traveling distance for the robot to take into consideration when planning its work. What you are seeing in this case is most probably a behavior to ensure navigation robustness (making sure the robot knows where it is). The robot will sometimes prioritize to travel through previously seen territory instead of cleaning the closest available floor patch. In the cases above the robot travels a long distance to revisit a small uncleaned patch which is the worst case, and may seem like a waste.
    I should say though, that these are trade-offs that we are actively re-evaluating and may change in the near future.

    If you would like to control the cleaning order to some extent, you could use CleanZones to prevent the robot from scurrying back and forth. One zone will be completely finished before starting on the next so if you create a few zones and set the cleaning order of the zones to your liking.

    Good luck!

  • apjapj Member

    @frekan said:
    The robot will sometimes prioritize to travel through previously seen territory instead of cleaning the closest available floor patch. In the cases above the robot travels a long distance to revisit a small uncleaned patch which is the worst case, and may seem like a waste.
    I should say though, that these are trade-offs that we are actively re-evaluating and may change in the near future.

    Thank you for your insights into our robots "psyche". This wanderlust seems to have befallen the robot during the transition from 40.17 to 40.18.
    I'm looking forward to the improvements in 41.x :)

  • rorororororo Member

    @apj said:
    I'm looking forward to the improvements in 41.x :)

    So do I. Thanks @apj for confirming the behaviour und @frekan for details on the cleaning logic and the suggestion about splitting into clean zones.

    If the bot is travelling far to revisit spots, crossing previously cleaned territory - wouldn't it be feasible to turn of or tune down the vacuum motor? That would at least conserve some battery life and might in some cases be just enough to get through the cleaning without in-charging?

    Cheers,
    r.

Sign In or Register to comment.