Lead mechanical engineer of the original Roomba here. The article is good on the behavior based algorithmic approach, but equal weight should be given to both the clever sensor design, and the extremely unusual 'passive feedback' cleaning head system the team came up with.
The bump sensor, cliff detection, and wall detection were all implemented with plain IR LED emitter/receiver pairs, and very carefully shaped plastic enclosures so that the sensors provided a binary signal (floor vs. cliff, wall present/absent, etc.) that would hold up for the millions of cycles the machines racked up. This 'filtering in the sensor' simplified the inputs to the 8 bit 8051 microcontroller, and lowered the cost to a couple of cents for each detector.
The cleaning head used the torque of the brush motor to actively control the height of the cleaning head as the machine moved from carpet to hard floors and back. That's the 'core trick' that let the Roomba clean well on multiple surfaces with about 15 watts of brush power. Details in the now-expired patent -- https://patents.google.com/patent/US6883201B2/en.
Dave Nugent came up with the original torque lift idea, and then we worked it into the 'floating pulley' approach used in the final design. It seems obvious now, but at the time this was a radically different approach to mobile cleaning. Everyone else (Electrolux, Karcher, etc.) tried to make a miniature vacuum, but that burned too much power for a mobile system.
Joe Jones (project originator and team physicist) wrote a book about the original team and our development process that I recommend: https://dancingwithroomba.com/
Minor tech notes: Phil Mass did the original programming on the first generation Roomba in C on the aforementioned Winbond 8051 microcontroller. I think it had 256 bytes (!!!) of RAM and 4K of ROM.
The code was burned into the chip at its creation (no onboard flash!) so it had to be right the first time. For the 2nd generation system they ported the behavior code to the internal LISP dialect in use at iRobot.
It was a wild ride. I'm both proud of what we did, and dismayed (but not surprised) at what happened afterwards.
Thanks for the commentary! I love hearing stories about the team members behind the scenes, and the clever innovations that make things work. Cool stuff!
The original Roombas were also a joy to repair. I had one for a decade, and the only thing that eventually broke was the IR sensor at the top, which left the robot unable to park. I bought a replacement, opened the robot up, and it wasn't just easy to work on, it even had captive nuts everywhere! Thank you for your work on the roombas, they were an incredible feat of consumer product engineering.
In the pandemic I bought the cheapest one, and it worked very well. It had a handle so I could pick it up, responsive buttons, and intuitive tones.
A few years later I bought one that automatically suctioned debris into a home base. That one had no handle, required reset frequently, and had tones that made you guess which Japanese train station it just arrived at.
Something went wrong at that company, and I don't think competition is an excuse.
When Roomba thought it was about to be acquired by Amazon, it did lay off 10% of its staff - https://www.therobotreport.com/irobot-laying-off-10-of-staff.... and after the deal was canceled, it was disclosed that they had reduced R&D and focused on margin improvements, and there was some brain drain as people left Roomba as it was in a 18 month limbo - https://www.verdict.co.uk/irobot-to-cut-over-a-third-of-its-.... And of course all this self inflicted pain only hurt them doubly as the Amazon deal fell through. If they had acted as if they weren't going to be acquired they might be fine, but they tried to maximize the shareholder revenue.
Back in the day (about 2002) I was working at an education software company which was trying to get itself acquired by Microsoft. MSFT came in and told us our software didn't conform to all these "standards" in the educational software space. Standards which, coincidentally, Microsoft themselves had written. These pseudo-standards did absolutely nothing to help our customers, and were pure bureaucracy and very very complicated to implement.
I'd recently read Charles Ferguson's book about how his company was acquired by MSFT, and recognized this part of their standard operating procedure, along with extreme and invasive due diligence where they spend a lot of time working out if you're stupid/pliable enough to jump through these hoops while buying themselves time to work out if they can clone your product. I tried to warn management (yes, really - even bought them copies of the book) but naturally no one would listen, and reading a book was too much like hard work. At some point MSFT simply ceased returning management's calls, and rolled out a similar product a while later.
The company imploded not long after, not for this reason in particular, but it was part of a general pattern of incompetence and mismanagement.
Friend of mine was in a company that was going to be acquired by $bigcompany. They strung them along and strung the along until their VC funding was exhausted, then picked up the remains for a song. Much cheaper than actually buying them up.
Agreed, putting aside the low cost competition, failed Amazon acquisition, etc.. the core product just literally got worse.
I had over a ~10 year period purchased 3 roombas. Generally I purchased in the upper half of current product range at each purchase time.
The most reliable, problem-free, longest lasting Roomba was the first initially purchased one. Every new one with more sensors/cameras/features worked worse. Cleaned worse, got stuck more often, was less easily fixed when in a bad state, etc. They got so bad I just stopped using them all together about a year ago.
Every time I purchased a newer Dyson cordless by comparison, the product seemed better than the last generation.
I have to believe that cordless broom vacs have put a dent in robovacs generally as well. When I looked at robovacs last, I came to the conclusion that my house wasn't great for them and that a broom vac I could just pull off the wall and run in a couple heavily trafficked locations for a few minutes was really just fine. The issue previously was that it was sort of a pain to pull out my plug in canister vac--so I mostly didn't. (I have a housekeeper every 3 to 4 weeks.)
I think also if you wfh then listening to the roomba go in circles for two hours versus just quickly vacuuming with a stick vacuum in fifteen minutes is a different equation.
The newer models are much more quiet compared to the older ones. In my case, the 980 vs 705 vac; the 980 can at times sound like a jet plane taking off. :)
I was a young kid when these came out. I remember being in a store that had one running around as a demo, bumping aimlessly around under shelves and off shopper's feet. With amusement, I watched it bump off a table leg, and rotate perfectly into position to drive through the open front door, then slowly drive forwards out of the store, never to be seen again.
Not long after that is when I started reading hardware hacking stuff. The early Roombas were extremely hackable - each one had a serial port connector under a cover and you could connect it to a computer and drive them around. It was the pre-Raspberry Pi days; I remember people attaching a router or the lightest netbook they could find for some sort of wifi remote control.
I was too young to ever get to play with one, but I did get to take a broken one apart once. Some highlights were the planetary gearbox contained inside the wheel hubs, and a cam on the rear caster which would trigger an optical limit switch once per rotation so it could estimate distance traveled.
That original half-black/half-white caster for very simple/cheap optical limits was something of a known off-the-shelf approach. You'd often use them in various Lego Robotics environments a decade or two before the Roomba.
It's easy to agree with the article here that the off-the-shelf simplicity of the early Roomba was a virtue. I appreciated that sense that you could look at a lot of the parts and guess what they were for or how the operated from the software side. That caster was one of those for "oh, yeah, that's probably for simple distance estimations".
The modern vSLAM robots with mops and swing brushes for edges may seem ridiculously complex, but they do work well and a much cheaper than the original Roombas. I think this more proved that software is easier than hardware. (i.e. complex vSLAM is cheaper than a bigger battery needed for less optimal routing)
Risking this turning into some sort of ‘Wired Top 5’, but what is the go-to robot vacuum? My Roomba has become a hatefully little chaos monkey. The house small and has wooden floors, so it shouldn’t be too tough.
Seconding Roborock - we have a mid range one and it's effective and a huge step up in smartness from my old Samsung. I love being able to dispatch it to one or two different rooms and walk away knowing that it will get the job done.
As a bonus, there are open source drop in replacements for the mfg's cloud service so you can self host your floor maps and stats, if that's your jam. (this isn't roborock exclusive though).
https://www.youtube.com/watch?v=Tz6U9QkXn5I Check this for a short overview of the available robovac mop technologies - modern roller mop equipped units have ultrasonic carpet sensors and will actually cover the entire mop to avoid getting carpets wet.
Anything valetudo supports is a good choice.
Roborock has a semi official API that you can use to get ok levelers of integration with home assistant but valetudo is the gold standard.
I think this was the missing piece from the article. The simple behaviors enabled interest in a market, but at the end of the day, the original Roomba didn't work well. It's cool to romanticize the simple behaviors, but like they miss things.
It’s not related to the engineering side of things, but the Roomba subreddit would ban people for mentioning anything negative about the product, such a great way to keep your product “successful”.
I think by “like that” the person probably meant Reddit is filled with petite tyrants who cannot tolerate other people’s viewpoints. It wouldn’t surprise me if they call people who like Liquid Glass fascists.
I don’t think it makes sense to blame mods, rather the design and business model. HN has stiff moderation (thanks Dan g), but doesn’t suffer the same fate. Reddit rewards hysterical posts and attracts hysterical people and bans carry much more weight. HN isn’t designed to attract a huge user base, Reddit is.
It’s more like Roomba silenced their customers, disregarded and disrespected their opinions, and now financially bankrupt after said customers didn’t buy their products.
i have never seen an HN thread about Reddit that didn’t turn into mostly hating Reddit.
Pretty much anywhere you go, people have a negativity bias both in what they say and in what they recall seeing. A great exception is Amazon reviews in which one must flip filters.
It either turns into hating that thing or a place where mildly criticizing that thing gets you banned. Or a place where telling someone they're full of it as tactfully as you can still gets you banned or your post deleted for "incivility."
The entire internet is astroturfed and manipulated and full of bots and influence campaigns. Here included. Really not what I hoped it would turn into.
It happens here I’m sure but, and maybe this I naive of me, I do not think we are seeing the organized, funded efforts like they see on Reddit. It’s usually someone self promoting here in my experience. I’m sure it’s happened but idk, it just doesn’t seem like seem as coordinated and large scale. If it is well done y’all, you’re hiding well!
My experience with HN is people generally prefer to dog pile onto whatever was mentioned, say it is the worst option, then bicker with each other about all the solutions being proposed. I say bicker, but those threads can be great sources of info.
iRobot refused to incorporate LIDAR scanners, instead relying on some janky computer vision approach. Robots from Roborock and friends know their position with cm-accuracy at all times, whereas Roombas only have some vibe about which part of the building they are in. This makes them much less efficient at route planning and less reliable at adhering to exclusion zones.
Another upside of LIDAR is that it isn't a camera. The robot sees a one-pixel 360 scan, which is quite enough for navigation, but doesn't have the privacy implications that come with an IoT camera device. I would not take a camera equipped vacuum even for free, and I think I'm not the only one.
I have one, and specifically got one without a camera because I don't want that driving around my house. The first time it went through I made sure to stow cables and such, and I do a quick walk-through to make sure that none of the cats have barfed and that there's no obvious obstacles before I release the hypnodrone.
It still saves me time, which was the reason that I bought it in the first place.
Sadly most new models have both camera and lidar. I can see the use of a camera for avoiding things like cables and pet poo, but I don't think it's worth is especially since all the robots are controlled via the cloud
Yeah this is really my perspective. They were king then refused to reprice or innovate when the market changed and I went with a Chinese brand that did mapping and mopping instead for less.
I have a Roomba with a camera. It navigates very well, including figuring out where it’s at within seconds of being manually moved to a new location on a different floor.
I too have a Roomba with a camera (the 980) and I am mostly satisfied with it (after ten years I guess I got used to its quirks).
I have also recently set-up the LIDAR-equipped 705 for my parents and let me tell you, there is no comparison.
The navigation speed is greatly improved which means cleaning tasks take a lot less time. Furthermore, it works in complete darkness with no problems! The camera-equipped model just bumps into stuff randomly and then gives up when it's too dark.
It’s not exactly easy but it is do-able if you have a compliant vacuum, order a pcb adapter and can boot a laptop into a recent Debian os to flash the firmware. Be careful what you say on the telegram group (I was banned for trying to buy a pcb instead of solder one).
I wish my Xiaomi X20+ was supported. I knew it wasn’t when I bought it, but the price/capability alignment made me go with a dumb "smart" vacuum. There hasn’t been an update in supported robots in almost 2 years, so I’m still holding out hope it will eventually be added when Dennis Giese gets bored and starts looking into stuff again ;)
That would be a dealbreaker for me. I don’t want a mobile camera live-streaming the interior of my home to a Chinese or American cloud service. LIDAR is the only acceptable option for me. I’m OK with having a very rough 2D map of my home stored on a server somewhere.
> No highres 3d scan of your home being phoned back
You should look at a teardown of one of those sensors. It's a 1D lidar (if you can even call it that, until recently all of those were not ToF but more triangulation/reflection angle) being spun, no high res scans of anything can be achieved using that tech :)
That's not entirely true. Roombas nowadays do come equipped with LIDAR. iRobot scrapped most of their in-house designs and instead chose to use generic OEM parts to build modern robots in 2025. And they are quite good.
Right now, their chinese OEM bought them and seems to be committed to keeping their robovacs alive.
It is my understanding that US availability of the top models (such as 705 combo) may be limited, so here is a german youtube channel that has a lot of reviews of their newer units and compares them to the old ones (usually the S9 or 980, as those are the best units when it comes to vacuuming): https://www.youtube.com/@frickhelm/videos
One of the stated disadvantages was “the difficulty of designing adaptable action selection through highly distributed system of inhibition and suppression”
I can’t help but wonder how well a token-based AI could iteratively tune (or develop) a subsumption-based AI.
Slightly offtopic but i feel like someone around here might be able to help. I've been learning how to do SLAM with LIDAR data and I was curious what algorithms robot vacuums use. I'm currently implementing a particle filter and will also try out EKF.
I've been playing around with SLAM using a depth camera, so I can't really tell you about LIDAR specifically, but I'd suggest doing some Deep Researches on the topic to get you a good lay of the land. During my searches for example, I came across this great compilation of visual SLAM projects: https://github.com/VSLAM-LAB/VSLAM-LAB
Unless you're a massive operation, you're probably just using an existing academic project, many of which handle a variety of inputs (depth, 2D lidar, 3D lidar etc), ie RTABMAP (what I started with), ORB-SLAM, nVidia Issac ROS SLAM (if you're on Jetson) etc. AMCL is an old-school algorithm for localization with 2D data - I tried it by taking a fake 2D scan from the depth camera and it was pretty terrible, so currently I'm trying to get visual-only SLAM working well enough for me because I don't want to spend $1k on a decent 3D lidar.
> but I'd suggest doing some Deep Researches on the topic to get you a good lay of the land
thanks for the resources !. I've been trying to get a wide view by looking at different algorithms, but I was curious what was actually used in production systems especially for consumer products.
RTABMAP and Cartographer came up in my searches, will definitely give these a closer look to understand how they work.
Right now im starting off with filter based approaches like Particle filter and Kalman filter, but i'd also like to understand how the graph based approaches work.
The bump sensor, cliff detection, and wall detection were all implemented with plain IR LED emitter/receiver pairs, and very carefully shaped plastic enclosures so that the sensors provided a binary signal (floor vs. cliff, wall present/absent, etc.) that would hold up for the millions of cycles the machines racked up. This 'filtering in the sensor' simplified the inputs to the 8 bit 8051 microcontroller, and lowered the cost to a couple of cents for each detector.
The cleaning head used the torque of the brush motor to actively control the height of the cleaning head as the machine moved from carpet to hard floors and back. That's the 'core trick' that let the Roomba clean well on multiple surfaces with about 15 watts of brush power. Details in the now-expired patent -- https://patents.google.com/patent/US6883201B2/en.
Dave Nugent came up with the original torque lift idea, and then we worked it into the 'floating pulley' approach used in the final design. It seems obvious now, but at the time this was a radically different approach to mobile cleaning. Everyone else (Electrolux, Karcher, etc.) tried to make a miniature vacuum, but that burned too much power for a mobile system.
Joe Jones (project originator and team physicist) wrote a book about the original team and our development process that I recommend: https://dancingwithroomba.com/
Minor tech notes: Phil Mass did the original programming on the first generation Roomba in C on the aforementioned Winbond 8051 microcontroller. I think it had 256 bytes (!!!) of RAM and 4K of ROM.
The code was burned into the chip at its creation (no onboard flash!) so it had to be right the first time. For the 2nd generation system they ported the behavior code to the internal LISP dialect in use at iRobot.
It was a wild ride. I'm both proud of what we did, and dismayed (but not surprised) at what happened afterwards.
In the pandemic I bought the cheapest one, and it worked very well. It had a handle so I could pick it up, responsive buttons, and intuitive tones.
A few years later I bought one that automatically suctioned debris into a home base. That one had no handle, required reset frequently, and had tones that made you guess which Japanese train station it just arrived at.
Something went wrong at that company, and I don't think competition is an excuse.
Back in the day (about 2002) I was working at an education software company which was trying to get itself acquired by Microsoft. MSFT came in and told us our software didn't conform to all these "standards" in the educational software space. Standards which, coincidentally, Microsoft themselves had written. These pseudo-standards did absolutely nothing to help our customers, and were pure bureaucracy and very very complicated to implement.
I'd recently read Charles Ferguson's book about how his company was acquired by MSFT, and recognized this part of their standard operating procedure, along with extreme and invasive due diligence where they spend a lot of time working out if you're stupid/pliable enough to jump through these hoops while buying themselves time to work out if they can clone your product. I tried to warn management (yes, really - even bought them copies of the book) but naturally no one would listen, and reading a book was too much like hard work. At some point MSFT simply ceased returning management's calls, and rolled out a similar product a while later.
The company imploded not long after, not for this reason in particular, but it was part of a general pattern of incompetence and mismanagement.
I had over a ~10 year period purchased 3 roombas. Generally I purchased in the upper half of current product range at each purchase time.
The most reliable, problem-free, longest lasting Roomba was the first initially purchased one. Every new one with more sensors/cameras/features worked worse. Cleaned worse, got stuck more often, was less easily fixed when in a bad state, etc. They got so bad I just stopped using them all together about a year ago.
Every time I purchased a newer Dyson cordless by comparison, the product seemed better than the last generation.
Is it my best vacuum if I'm comparing vacuums on technical specs? Hell no.
Is it my best vacuum if I'm comparing by time used? Absolutely.
Not long after that is when I started reading hardware hacking stuff. The early Roombas were extremely hackable - each one had a serial port connector under a cover and you could connect it to a computer and drive them around. It was the pre-Raspberry Pi days; I remember people attaching a router or the lightest netbook they could find for some sort of wifi remote control.
I was too young to ever get to play with one, but I did get to take a broken one apart once. Some highlights were the planetary gearbox contained inside the wheel hubs, and a cam on the rear caster which would trigger an optical limit switch once per rotation so it could estimate distance traveled.
It's easy to agree with the article here that the off-the-shelf simplicity of the early Roomba was a virtue. I appreciated that sense that you could look at a lot of the parts and guess what they were for or how the operated from the software side. That caster was one of those for "oh, yeah, that's probably for simple distance estimations".
Software is certainly easier to replicate that hardware, 1M copies cost almost exactly the same as 1 copy :)
As a bonus, there are open source drop in replacements for the mfg's cloud service so you can self host your floor maps and stats, if that's your jam. (this isn't roborock exclusive though).
It's not valetudo is it?
It's a vacuum + mop combo which imo is way better for hard floors
Reddit is a weird place that is not real life.
My experience with HN is people generally prefer to dog pile onto whatever was mentioned, say it is the worst option, then bicker with each other about all the solutions being proposed. I say bicker, but those threads can be great sources of info.
https://www.technologyreview.com/2022/12/19/1065306/roomba-i...
Robots without cameras have an extremely difficult time distinguishing obstacles like cables etc on the ground.
It still saves me time, which was the reason that I bought it in the first place.
And yes, I keep the floors free of cables and clutter when it's vacuuming time. That isn't a hassle
Reminds me of this one car company that sold me something called "FSD" that never worked. Hopefully they'll be bankrupt soon too.
It’s incredibly difficult in a successful business to change direction or even innovate.
There’s a bunch of guys in the engine room throwing coal into the furnace.
There might be one or two lookouts shouting - but they are drowned out by the noise of the engines.
If you’re lucky there’s a guy in the wheelhouse desperately spinning the wheel - but the connection between the wheel and the rudder is broken.
I have also recently set-up the LIDAR-equipped 705 for my parents and let me tell you, there is no comparison.
The navigation speed is greatly improved which means cleaning tasks take a lot less time. Furthermore, it works in complete darkness with no problems! The camera-equipped model just bumps into stuff randomly and then gives up when it's too dark.
You should look at a teardown of one of those sensors. It's a 1D lidar (if you can even call it that, until recently all of those were not ToF but more triangulation/reflection angle) being spun, no high res scans of anything can be achieved using that tech :)
I wonder if they fell into a sunk cost fallacy with their camera-based approach.
Right now, their chinese OEM bought them and seems to be committed to keeping their robovacs alive.
It is my understanding that US availability of the top models (such as 705 combo) may be limited, so here is a german youtube channel that has a lot of reviews of their newer units and compares them to the old ones (usually the S9 or 980, as those are the best units when it comes to vacuuming): https://www.youtube.com/@frickhelm/videos
I can’t help but wonder how well a token-based AI could iteratively tune (or develop) a subsumption-based AI.
Unless you're a massive operation, you're probably just using an existing academic project, many of which handle a variety of inputs (depth, 2D lidar, 3D lidar etc), ie RTABMAP (what I started with), ORB-SLAM, nVidia Issac ROS SLAM (if you're on Jetson) etc. AMCL is an old-school algorithm for localization with 2D data - I tried it by taking a fake 2D scan from the depth camera and it was pretty terrible, so currently I'm trying to get visual-only SLAM working well enough for me because I don't want to spend $1k on a decent 3D lidar.
thanks for the resources !. I've been trying to get a wide view by looking at different algorithms, but I was curious what was actually used in production systems especially for consumer products.
RTABMAP and Cartographer came up in my searches, will definitely give these a closer look to understand how they work.
Right now im starting off with filter based approaches like Particle filter and Kalman filter, but i'd also like to understand how the graph based approaches work.