A Glimpse Into The Mind Of A Robot Vacuum Cleaner

What’s going through the mind of those your autonomous vacuum cleaning robots as they traverse a room? There are different ways to find out such as covering the floor with dirt and seeing what remains afterwards (a less desirable approach) or mounting an LED to the top and taking a long exposure photo. [Saulius] decided to do it by videoing his robot with a fisheye lens from near the ceiling and then making a heatmap of the result. Not being satisfied with just a finished photo, he made a video showing the path taken as the room is being traversed, giving us a glimpse of the algorithm itself.

Looking down on the room and robot
Looking down on the room and robot

The robot he used was the Vorwerk VR200 which he’d borrowed for testing. In preparation he cleared the room and strategically placed a few obstacles, some of which he knew the robot wouldn’t get between. He started the camera and let the robot do its thing. The resulting video file was then loaded into some quickly written Python code that uses the OpenCV library to do background subtraction, normalizing, grayscaling, and then heatmapping. The individual frames were then rendered into an animated gif and the video which you can see below.

Watching the video it’s clear that the robot first finds an obstacle and then traverses its perimeter until it gets back to where it first found the obstacle. If the obstacle defines the outer boundaries of a reachable area then it fills in the area by crossing back and forth. It makes us wonder if the robot programmers can get some optimization hints from fill routines used in drawing programs. If you did want to experiment with other algorithms then you can without too much trouble using iRobot’s hackable Roomba, the iRobot Create, though you’d have to add back the vacuum. You’ll also notice that it couldn’t fit between the two boxes placed in the middle of the room. We’re guessing that it’s aware of this missed area. How would you solve this problem?

16 thoughts on “A Glimpse Into The Mind Of A Robot Vacuum Cleaner

    1. Does it make more or less sense than the lack of dog crap detection and subsequent smearing of the robotic vacuum cleaner and all of your carpet with it as it sets about for hours, spreading it all over every square inch of floor?

  1. This is simply AMAZING. It is not hard to come up in an algorithm to do something like that in a simulation, where you have neat X and Y variables showing your exact position. However, to achieve something like that in real life is astounding. Wheel rotary encoders are only so accurate, so where you think you are will drift from where you actually are over time. Even knowing accurately which direction you are going is also amazing (even compasses can be wrong when you consider that furniture may be made out of metal).

    That is actually the kind of path that I would expect if you scaled this up and put it outside so that you could use GPS. Good job, Vorwerk guys!

  2. Impressive,
    reminded me of those home computers in the 80’s with a “floodfill” on the monitor.
    Unfortunately no info whatsoever about the sensors, algorithms, sofware side of this kobold on the manufacturer’s site.

    I wonder if this vacuum cleaner can stand the turd test.

    1. Vorwerk collaborated with Neato on their robots: the VR100 was effectively a Neato D85 that Vorwerk pimped with an improved vacuum and some additional sensors, the VR200 seems to be a Vorwerk development based on Neato navigation technology.

      I wonder if somebody managed to extract the SLAM maps from the Neato robots by now. Anybody know?

  3. video is somewhat reminiscent of watching my 3d printer fill in a complex layer. only real difference is the 3d printer knows whats coming, the robot seems to be adjusting its plan every time it finds a new perimeter.

  4. I have a Samsung Navibot the Worst thing ever, compared to my cheap roomba it claims to be intelligent but it isnt, it gets stuck everytime on its own ramp for the selfcleaning and charging it rotates multiple times at the same spot and doesnt get the job done
    the cheap roomba on the other side is just stupid, drives until it hits something than goes to another direction, but he goes to all rooms and gets the job done at 127m2
    the navibot on max settings only covers the living room with 60m2

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s