Open Autonomous Domestic Robots – An open source system for domestic cleaning robots using low-cost hardware


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.  Most of the time I try to avoid these tasks by being clever.  One of the most tedious tasks 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 modular 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.

Design Goals

Primary Goals

  • Reasonable vacuuming strength
  • Detects when it hits an obstacle
  • Works on various floor types (carpet, tile, wood, etc.)
  • ~1 hour battery power
  • Easy to empty
  • Modular (cleaning unit separate from navigation unit)

Secondary Goals

  • Cleans corners
  • Basic Obstacle avoidance
  • Intelligent movement algorithm
  • WiFi connectivity

Tertiary Goals

  • Room mapping
  • HEPA filter
  • Returns to charger
  • Adapts to floor type
  • Ultrathin (<50mm tall)
  • App/Web controlled
  • Wireless firmware updating


Project Repository – Source control for all project files

Mechanical Design

Electrical Design

Firmware Design

Software Design


Open Autonomous Domestic Robots

Project Goals

On Modularity

Navigation Chassis v0.1

Motion Test #1

Navigation Chassis v0.2

Motion Test #2

Test Platform

Wall Following

Connecting to Raspberry Pi

Much Ado About Batteries

Data Visualization

Long Term Plans

Battery Charger Circuit

Battery Charger Simulation

Battery Charger PCB

Navigation Chassis v0.3

On Modularity, Part 2

Vacuum Module v0.1

Vacuum Test #1

Mop Design Decisions

Mop Water Capacity

Pump Test

3 thoughts on “OpenADR

Leave a Reply

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

You are commenting using your 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 )

Connecting to %s