I Am Mesmerized By Our New Robotic Vacuum

Ben Lovy on July 21, 2019

Disclaimer: this is more a rant than anything else. Maybe more #crazydudewontstoptalkingavoidthewatercooler but that's unwieldy as a hashtag. The... [Read Full]
markdown guide

Considering you mentioned Processing and HTML Canvas, definitely do check out p5.js. It’s what I would use to model this problem.
Very interesting read too — I’d love to get one as a pet. If it’s a pet, you’re supposed to play with it and feed it and all that, right?


Oh cool, thanks for the tip! P5 looks neat, much easier than what I had in mind doing it manually. I've been focusing more on JS than Python lately, too, so it makes sense to not hop to something brand new.

I hope so. I'll start leaving dust bunnies around for it to find :p

EDIT: I think I'm gonna go with p5.js, it's exactly what I was looking for in a language I already sorta know! Thanks again.


We got one a few months ago. Bissell had it on sale for 200. I will say our experience has been different, and actually even better. We have 4 dogs. Two of which shed buckets of hair. Yet our vacuum has done a fantastic job at keeping the whole floor clean. With the exception of our half bathroom, but to be honest, the bathroom is super duper small relative to the robot. I will say however, there's more maintenance involved then I expected (naively). Because of the dog hair we end up cleaning it just about every day, and we've had to actually pull the sensors out and clean it a couple times (it's worth mentioning our dogs were not particularly friendly the first two days and did in fact step on it a couple of times...). But it's definitely less work for us then sweeping every other day (when I said "shed buckets" I meant it).

I did the same thing and sat there trying to figure out why it wasn't using a simple path. We have a circular swivel chair, and when I saw how it went around the chair my mind was officially blown. It has brushes that are larger than the robot. But what it did was rotate back and forth around the edge to pull dirt and hair out from under the chair, and then went back and sucked it all up.

And I realized after we bought this one, that iRobot (aka Roomba) actually sells a 200 version that you can program and supposedly do cool stuff with!


Great report! Good to know it's handling the dog hair - there's more likely than not a dog in our future, and it'd be great t be able to continue to use this device.

I was also pleasantly surprised by the brushes. I wasn't expecting them to protrude past the body of the machine but you're right, it's very effective at kicking out dust from under cabinets and along hard-to-reach areas, then passing back over to pick it all up. I'm unclear on whether it's doing so intentionally or just happens to then find itself passing back over the dust it kicked up, though - either way, it works well!

Good note about cleaning the sensors, thanks. We'll probably keep dumping the dust trap after each run for now even if it's overkill, it only takes a few seconds.


Awesome, thank you! I think Python is the language I'd prefer, I'm less convinced about about Turtle specifically, definitely going to check these out.


Nice algorithmic puzzle you've got going! I'm definitely curious now.

Shameless self-promotion, but my "Dead Simple Python" series should help you transition from whatever language you're using (C++?) into Python pretty seamlessly. It's written for that purpose, basically.

Awesome, definitely will check it out! I have used python a little bit here and there but never for anything larger than a hundred lines or so. I basically just use it like C that doesn't bite, I think. I've got a lot to learn about its idioms.


I'm SO interested in one of these... but have no clue how it would behave in a home with children, where there are regularly things like toys, tiny Legos, & soft edges like dropped blankets on the floor.


It might be tricky, we did have to do a pass an pick up cords and things, and it does treat blankets as walls which can un-optimize it pretty quickly. The magnetic boundary tape it comes with can be useful for cordoning off a part of a room, though, of the legos are relatively localized! This one you can also tell to specifically just do a room, which may be easier one at a time than needing to keep the whole house ready to be crawled over.


I too am interested, but I have approximately enough open floor space to fit a pair of shoes so it's not entirely practical.

I shall educate myself vicariously through you lot.


I was also mesmerised by my Roomba a few years ago. But recently got a neato, and i have to say using a map to specify no go zones is much more effective and less hassle than other methods. Also, if a room needs attention I can do just that one. After getting mapping, I wouldn't want to go back to not having it.


That makes sense - my rose colored glasses may be wearing off, but the second run I noticed a lot more repeated work. It's definitely not well optimized, I think our apartment is just small enough to get covered well anyway. We'll eventually move and likely revisit then!


I got one, too.
Three key take aways after a few days of robotic cleaning:

  • It will not replace manual vacuuming. It's great for general cleanup, but I'd I wouldn't trust it to have gotten every spot before the in-laws come visit.
  • I have a year-old son, who is always exploring the flat and testing out when his parents tell him to leave something be because it's dangerous or fragile. The robovac told me a lot about cables and wires we had still lying around.
  • Miss-scheduled cleaning cycles at night are scary as hell.

That's interesting because most Roomba vacs have similar algorithms I think but are more expensive. Only higher end roomba will actually remember a map and as I was told, the top end model coming over 1k take a couple of hours mapping.

Check out xiaomi's roborock. We got one recently and did the same thing of following it around. A bit more expensive but uses laser distance sensor to map out a room and continuously map out a room during the cleaning session and can store one map currently. For about an 800sqft space, it cleaned in about 60min time using a third of the battery. Difference for us is I'm working on some major renovations and it's a pretty good test of what it can do. We're pretty impressed so far. One major flaw is when it ends up inside drapes and decides for a while that it has nowhere to go based on laser distance.


That's interesting, but I guess it makes sense that most would end up on similar solutions. I'm just still surprised it isn't doing a space-filling zig-zag, but maybe it just can't even bother with absolutely no state stored. It's crazy how steep those get.

That's the second shout-out to that brand, and that sounds pretty clever. Definitely more efficient than whatever this is or isn't doing. I don't think there's another in our future any time soon, but this brand will be my first go-to if/when it does happen.


The power of random with simple heuristics indeed.
You could check out our PyBullet, it is a Python module suitable for this task. It has optional OpenAiGym environments, and install is one line: pip3 install pybullet --upgrade --user
Check out pybullet.org for a quickstart.


This is awesome! Thanks a lot.


I have some general space-filling/path-finding algorithms in my toolkit to start from

What you want is to study search algorithms. Norvig et al's "Artificial Intelligence" is really good here (though it is a dense, weedy subject). A lot of AI work is about cleverly pruning search space. You can do surprisingly well at a lot of things with very basic ideas (just generally speaking) and it's not until the scale gets large that it makes sense to focus on anything more efficient


A guy I worked with previously worked on guidance systems, he informed me that they use SLAM algorithms - Simultaneous Localization and Mapping. en.wikipedia.org/wiki/Simultaneous...


Aha! This is exactly what I was looking for, thanks very much for the link.


We've got one of these vacs as well - super cool, isn't it! I'd love it to be a bit more intelligent in terms of mapping the space, but it definitely gets the job done.

Now, if only if it could hover up the stairs... ;-)


I have a feeling as I watch it over time the "dumb"ness of it will become more and more apparent...I have a feeling its only a matter of time until they crack that problem too!


Unity3D all the way. For simulation it just does so many things right out of the box and in one integrated package its just a no brainer for me. C# is also not terrible and is easy to get started with if you have any exposure to other C family languages.


What a fun article to read, thanks!

I once owned one of these, some Chinese model rebranded and sold in Brazil as 'Ropo'. It was dumb and annoying as. Sometimes it would go about 1/3 of the apartment and come back to base thinking 'job done' (battery still full). Often got stuck in the kitchen and started beeping for help. It was also one of cheapest options on the market, double the price of yours but 5 years ago, so it's good to know they evolved.


Oof, that sounds frustrating. Looking around it seems like there's definitely still a lot of variance between these knockoff brands, I think we just got pretty lucky.


Not sure how I missed this when it was fresh...

Robot vacuums and their kin were languishing in a corner of my mind reserved for things that seem cool but aren't ready yet. Mostly as a result of a co-worker that was an early adopter and unimpressed.... 10+ years ago.

Having just moved to a new apartment and with my pets are en-route, it's time to re-evaluate.


That's how it went for me too - my opinion was formed somewhere around generation one and never revisited.

Now that the novelty has worn off it's definitely not a life changing device, but it's quite nice to have.


I suspect, but don't know, that one thing that makes it work much better than expected is sensing if it's picking up any dirt/dust. You can avoid following the same edge if you notice you're not picking up any dirt. You can also go off into a random direction when you're not picking up any dirt. If you're methodical when detecting dirt, and random when you're not, I bet you do ok.


Do you have Telegram messenger?
There's a group I should probably add you to, it's people jailbreaking their Xiaomi vacuums.
They are OBSESSED with maps.


I do not, I'll check it out after work today! Sounds like a fun group, hadn't thought to try anything like that on this device but its the next inevitable step!


Wow, I thought these robot vacuum cleaners can't clean carpets. Now I feel like a caveman (and like I have to get one ASAP).


I know! All my assumptions about these things were created in like 2005.


God of war PS4! Yup defo a keeper!


I should be going to bed but just spent 5 more mins skimming this and 5 more mins reading comments.


Please do a collab with computerfile on youtube if you find anything interesting.


This sounds awesome! Such a fun project!

I don't have much domain experience in anything like this either, but Python definitely feels like a good choice for this kind of thing!


I agree, seems like the right style for this task! A good opportunity to learn more about that ecosystem too.


😂😂😂😂 I could see myself doing this! We are such nerds!!🤓🤓🤓


Dude, I got a Roomba knockoff and watched it for days. I'm with you. It's so fascinating.


Does your also seem to take totally random directions each turn, or is there a clearer pattern?


Robotic vacuums changed my take on cleaning the house. Frankly speaking, I thought they are useless, low-power, and such. But I was recommended to read an article here cleanup.expert/robot-vacuums/#rating and buy one of these models. I didn't expect this to be that useful because I almost forgot about dust (well, its quantity reduced significantly) and pet fur on the floor.

code of conduct - report abuse