I’m the kind of person who’ll go to great lengths to avoid boring tasks, despite the fact that the work spent avoiding them greatly outweighs the work of the tasks themselves. One of the most tedious chores I can think of is vacuuming my apartment; therefore I’m willing to put in a lot of work engineering a system to do the job for me. While it would be far simpler to buy a Roomba, it doesn’t seem like it should cost hundreds of dollars for what amounts to a vacuum strapped onto some motors.
Instead, I’m going to try and accomplish something of similar function with cheap hardware. Additionally, since the current domestic robots on the market require the purchase of separate robots for each target function (vacuuming, mopping, etc.), I’m going to try and design a modular system to both cut costs and reduce the redundancy between different robots.
While my initial goal is just to get the robot to vacuum, I hope that a modular design will lend itself to greater flexibility in the future. Somewhere down the line I’d like to have swappable attachments that mop, increase bin capacity, add battery life, etc. I also think that a modular approach will assist with development by allowing incremental updates for each component.
I anticipate this being a complex project requiring custom hardware, firmware, and software, so I’ve added this as a new project on my projects page. I’ll attempt to split up the work into logical chunks and do individual write-ups for each milestone.
The code for the project is hosted on my Github under OpenADR. Because a vacuum is an appliance that every home (hopefully) has, I’m sharing my work, designs, and code as an open source project in the hopes that other people will have comments, suggestions, or be interested in helping out.