Cleaning simulator: how much of your room does each robot reach?
Pick a room and a robot. The planner follows the walls, splits the floor into cells, sweeps each in back-and-forth lanes and drives home. Click the map to add or remove a 40 cm piece of furniture and watch the plan change.
wall or furniturecleanedmissededge passlanesgrey dashes: moving between areas
Coverage here assumes the robot drives its plan exactly. The Python simulator (floorbots study) adds wheel slip and wandering localisation error; see the table below. For a mop or combo the map shows the pad's coverage. Time is driving and turning only.
What the simulation says
Planner output for the three preset rooms, 10% lane overlap (floorbots compare --room <room>). Coverage is the share of the floor each tool reaches.
| Room | Floor | Vacuum covers | Mop pad covers | Vacuum / mop time | Combo time |
|---|---|---|---|---|---|
| Bedroom | 7.4 m² | 99.7% | 77.0% | 5.9 min | 7.4 min |
| Living room | 15.7 m² | 95.5% | 79.8% | 13.7 min | 16.2 min |
| L-shaped flat | 29.6 m² | 99.4% | 87.0% | 20.1 min | 25.5 min |
Then the plan driven by a simulated robot with 3% wheel slip and localisation error that wanders with a 5 s time constant: living room, mean of 5 runs (floorbots study --room living --variant vacuum --overlap 0 --overlap 0.3 --pose-sigma 0 --pose-sigma 0.02 --pose-sigma 0.05 --pose-sigma 0.10 --seeds 5):
| Lane overlap | Exact pose | 2 cm error | 5 cm error | 10 cm error | Planned time |
|---|---|---|---|---|---|
| Vacuum, 0–10% | 95.5% | 93.7% | 89.4% | 86.6% | 13.7 min |
| Vacuum, 30% | 95.5% | 94.7% | 91.5% | 88.2% | 16.2 min |
| Mop, 0–10% | 79.8% | 77.8% | 74.0% | 71.0% | 13.7 min |
| Mop, 30% | 79.8% | 79.4% | 77.2% | 73.9% | 16.2 min |
- A mop-only round robot leaves a strip along every wall. Its pad is under its body, so in these rooms it reaches 77–87% of the floor while the vacuum's side brush reaches 95–100%.
- Localisation matters more than overlap. Ten centimetres of wandering pose error costs the vacuum about 9 points of coverage; tripling the overlap wins back under 2 of them for 18% more time.
- The combo pays for its narrower pad in time: about a quarter longer than the vacuum in the flat.
Simulation under stated assumptions, not a measurement of any robot. On the 5 cm grid, 0% and 10% overlap give the same 15 cm lane spacing. The living room's missing 4.5% for the vacuum is floor the 33 cm body cannot reach (the gap beside the sofa and behind the armchair).
Manufacture one: download the fab package
One parametric CAD model generates a complete package per robot: laser-cut DXF files (a 3 mm aluminium base and a 3 mm acrylic deck, true millimetres, no bends or tapped holes), STL files for the PETG printed parts (each fits a 220 mm bed), STEP files for any CAD or CAM tool, a full bill of materials with every fastener, and assembly drawings. Every build checks every part against every other for collisions (with the pad lifted and the bumper pressed in, too), every insert hole against its plate hole, that the robot rests on its wheels and casters, that its centre of mass sits between them, and that the cliff sensors see an edge early enough to stop.
- Robot vacuum: download (zip, 0.6 MB) · browse the files
- Robot mop: download (zip, 0.6 MB) · browse the files
- Vacuum-mop combo: download (zip, 0.7 MB) · browse the files
Design v0.1, not yet built: the first build will find things to fix. Change any dimension and regenerate with python -m ofr_cad vacuum (parametric CAD source).
Build one
- The shared chassis: layers, why the wheels, casters and cliff sensors sit where they do.
- Robot vacuum: nozzle, roller, side brush, bin and fan sizing; bill of materials (roughly $420 in parts, estimated).
- Robot mop: tank, pump, water dosing, pad lift; bill of materials (roughly $400).
- Vacuum-mop combo: what the split module costs in time and capacity; bill of materials (roughly $470).
- Electronics, pin map and power budget, ESP32 firmware, and safety.
- Software:
pip install "git+https://github.com/duncan-haywood/oss-monorepo#subdirectory=ventures/open-floor-robots", thenfloorbots compare --room living.
Also in the portfolio: Open Tennis Robots, an open-source ball machine and ball-collecting robot built the same way.
Questions
Can I build my own robot vacuum?
Yes. This project's robot vacuum is a 330 mm round robot with a laser-cut aluminium base, 3D-printed bumper, nozzle and bin, two encoder gearmotors, a roller brush, a side brush, a 60 mm brushless fan, six cliff sensors and a lidar. The parts list estimates roughly 420 US dollars. Every file is MIT-licensed. It is a v0.1 design that has been simulated and checked in CAD, not yet built.
What is the difference between a robot vacuum, a robot mop and a vacuum-mop combo?
Here they share one chassis and differ only in the rear module. The vacuum has a nozzle, roller brush, side brush and dust bin. The mop has a water tank, a pump and a vibrating pad on a lift. The combo has both, with a split bin and tank and a narrower pad behind the nozzle, so it takes longer per room and holds less.
Why do robot mops miss the edges of a room?
A round robot's pad sits under its body, and the body keeps its own radius from the wall. In this project's simulation the pad reaches 77 to 87 percent of the floor in three sample rooms, against 95 to 100 percent for the vacuum, whose side brush reaches past the bumper.
How does a robot vacuum plan its cleaning path?
This planner follows the walls first, then splits the floor into cells that can each be swept in straight back-and-forth lanes (boustrophedon decomposition), visits them nearest first and links them with the shortest path that stays clear of furniture. The simulator on this page runs the same planner the robot runs.
How long does the battery last?
With a 4S2P 18650 pack (75 Wh rated, 54 Wh planned), the assumed loads give about 98 minutes for the vacuum, 94 for the combo and 341 for the mop. The mop's real limit is its tank: about 125 square metres at 3 ml per square metre. These are planning estimates from assumed loads, not measurements.
Will it fall down the stairs?
It has six cliff sensors. If a front sensor sees no floor while the robot is moving forward, the firmware reverses on its own and then refuses forward motion. Speed is capped at 0.35 m/s so that, by the design's estimate, the wheel stops before it reaches an edge the sensor saw. Test it on a low step first and tune the sensors on your floors.
Can I sell robots built from these designs?
Yes, the MIT licence allows it with no royalty. If you sell one you are the manufacturer, and household appliance safety (such as IEC 60335-2-2), battery, charger, radio and EMC rules where you sell are your responsibility. The design has not been tested against any of them.