Hypfer / Valetudo

Cloud replacement for vacuum robots enabling local-only operation
https://valetudo.cloud
Apache License 2.0
6.57k stars 391 forks source link

Problem with persistent map data and zone cleanup. Temporarily closed doors affecting the routing permanently. #365

Closed LayerCakeMakes closed 4 years ago

LayerCakeMakes commented 4 years ago

FW 1886 Valetudo 0.4.0 Roborock S50

After an initial successful setup and first cleaning with all doors open the map was recorded correctly. But after the second and third zone cleanup with some doors closed the routing now treats the now again open doors as walls and can't reach some zones. Similar things happen with temporary obstructions like moving chairs.

One possible solution could be an option to mark doors as such or a possibility to save one master map state that is reset after each cleanup.

A map editor where obstructions can be deleted in such a master map could also be useful.

MapWithProblems
Krazy998 commented 4 years ago

On the next run it should remark those doors as passable. It does on mine. I close doors and open them all the time to control where the robot goes. Has no issues going back to areas which have a door closed.

ottelo9 commented 4 years ago

I've the same problems. My roborock Gen2 dock is under a cupboard. The robot detects the edge of the cupboard as obstacle (a line in the map) if he moves away from the dock. Simple cleaning works, but zone cleaup and go to position doesnt work for me.

LayerCakeMakes commented 4 years ago

@ottelo9 you're right this problem occured during zone cleanup for me too. I updated the bug accordingly.

@Krazy998 I don't intend to run the complete cleanup often so that is not a real solution for me. I want to detect presence in the rooms through my home automation and clean only those that are empty.

alexjung commented 4 years ago

I've read an article (here or in c't 21/2019, S. 174, unfortunately not free to read) where they mention the problem you describe. They say they solved it by adding the "door area" to the zone you want to clean (so the zone consists of a small rectangle drawn over the door area(s) and the actual room/area you want to clean). But it's important that you add the doors in the order of occurence starting from the docking station and ending with the actual area to clean, as the coordinates are passed in that order to the robot. They state that like this, the open doors are re-detected and the robot reaches the actual zone. But I did not try this myself, just thought that it might help you.

ottelo9 commented 4 years ago

Mhh I dont know why, but sometimes it works ... 2019_11_07_14_34_21_Mi_Robot_Vacuum

ottelo9 commented 4 years ago

I've read an article (here or in c't 21/2019, S. 174, unfortunately not free to read) where they mention the problem you describe. They say they solved it by adding the "door area" to the zone you want to clean (so the zone consists of a small rectangle drawn over the door area(s) and the actual room/area you want to clean). But it's important that you add the doors in the order of occurence starting from the docking station and ending with the actual area to clean, as the coordinates are passed in that order to the robot. They state that like this, the open doors are re-detected and the robot reaches the actual zone. But I did not try this myself, just thought that it might help you.

I tried the instructions from the C'T magazin. First add door zones to my rooms, beginning from the robots dock station. 2019-11-12 07_36_22-Mi Robot Vacuum

adfx commented 4 years ago

Maybe this is helpful for you guys: https://github.com/Thyraz/MapLoader The Maploader is triggered via mqtt and can store as much maps as you could imagine names for them.

A litle of topic: I stuffed my S50 with that maploader because it forgot several times the complete map and with this all configured zones were not in place any longer. BUT I had to modify the maploader.js. You can find my fork on my site which includes all necessary updates.

Belgadon commented 4 years ago

@ottelo9 Have you found a work around for "go to position" too? My roborock dock is under the sofa and I have the same problem.

ottelo9 commented 4 years ago

No, no fix for the go to postion.

@adfx Your link/url is wrong. The text show the correct url but you insert a wrong url into the link.

Hypfer commented 4 years ago

Thats beyond the scope of valetudo, sadly.

jmichler commented 3 years ago

Hi, Can one use the maploader in combination with latest valetudo? This is really the only annoying thing remaining on the s50 with valetudo. I've tried to change my rooms a bit to have the rooms a bit bigger than they are and include the doors, but still I often have "cannot navigate to target" when I do not include all the intermediate rooms in a cleaning. I'd appreciate if @Hypfer would rethink the "don't mess with the map" strategy and eventually give us some basic support to restore an "always constant" map when docking. Or is there any script I can use to implement this on top of valetudo?

Regards, Johannes