The open-source robot vacuum you build yourself.
Raspberry Pi · ROS2 · Home Assistant · 2D LiDAR · 3D printed · ESP32 · Arduino
oomwoo is an open-source home robot vacuum you can build yourself, made for the Raspberry Pi, ROS2, Home Assistant, and 3D-printing communities. It uses an affordable 2D LiDAR to map your home and navigate on its own. Local, no cloud required for regular functionality, no vendor lock-in. Follow the community newsletter.
Reference design images - this is approximately how the finished design will look:
- Affordable, fully open hardware, software and firmware
- Home appliance product quality - not a throwaway build
- Easy to build, with step-by-step zero-to-hero instructions
- 2D LiDAR mapping and autonomous navigation (ROS2 / Nav2)
- Native Home Assistant integration for local control
- 3D-printable, documented, and hackable chassis
- Buildable from parts you source yourself
- Local, no cloud required for regular functionality
- Optional extra functionality when connected cloud
- Apps on top of ROS2 to customize vacuum operation
- Stretch goal: App store
- Stretch goal: LeRobot integration, OpenClaw
** v0 target: bare-bones build:
- 3D-printed chassis
- ROS2 Gazebo sim
- LiDAR with manual SLAM
- ROS2 on Raspberry Pi 5 AND/OR ESP32 running micro-ROS with ROS2 on local PC - decision TBD
Open Source Deliverables:
- Bill of materials (BOM)
- 3D-printable files
- ROS2 packages
- Firmware
- Motor drivers and sensors PCB
- Build, setup, bringup and troubleshooting instructions
- Demo video(s)
Full build docs and a complete BOM are on the way, with the goal that you can source every part yourself.
Would you like to contribute?
oomwoo is organized to built by the community, massively in parallel. The vacuum and its software are subdivided into modules, see list below.
A volunteer picks whatever module she wants, works on that module whenever she wants, submits her contribution as a PR under contributions/module-name/.
Multiple developers are welcome to work on the same module. The best solution for each module surfaces for over time, with the project master having the last call.
- Pick a contribution from the list below.
- Let us know you're working on it and your progress.
- Check ARCHITECTURE.md for the system design and interfaces.
- Say hi on Discord
Follow us building in public:
- Reddit: build-in-public home at r/ArduinoAndRobotics
- YouTube: build-in-public channel
- X: @0OMWO0
- Community newsletter.
The modules can be worked on in parallel, but some build on others. An arrow
A → B means "B builds on A" — green modules have no dependencies and are ready
now; amber modules are unblocked once their parents land; the blue one needs real
hardware. The mechanical modules (dust-bin, vacuum-fan) have no software
dependency and can start anytime.
flowchart TD
URDF["urdf-gazebo-sim"]
CM["clean-and-map"]
NL["nav-localize"]
DC["dock-cycle"]
RS["recovery-safety"]
FC["floor-care"]
CJ["cleaning-jobs"]
LR["live-robot-bringup"]
DB["dust-bin"]
VF["vacuum-fan"]
URDF --> CM
URDF --> RS
CM --> NL
CM --> FC
NL --> DC
CM --> CJ
NL --> CJ
DC --> CJ
CM --> LR
NL --> LR
DC --> LR
RS --> LR
FC --> LR
CJ --> LR
classDef ready fill:#d4edda,stroke:#28a745,color:#155724;
classDef blocked fill:#fff3cd,stroke:#ffc107,color:#856404;
classDef hw fill:#cfe2ff,stroke:#0d6efd,color:#084298;
class URDF,DB,VF ready;
class CM,NL,DC,RS,FC,CJ blocked;
class LR hw;
A standalone image of this graph (with a legend) lives at
assets/rfc-graph.pngfor sharing on Discord, Reddit, etc. The source isassets/rfc-graph.mmd— edit it and re-export withnpx @mermaid-js/mermaid-cli -i assets/rfc-graph.mmd -o assets/rfc-graph.png -s 3.
| Module | ID | Phase | Notes |
|---|---|---|---|
| ROS2 URDF + Gazebo sim | urdf-gazebo-sim | Ready to start work | Design URDF, TF, bumper, simulate in Gazebo |
| First clean: coverage + mapping + exploration | clean-and-map | Blocked by urdf-gazebo-sim | Coverage cleaning while SLAM-mapping and exploring, in Gazebo |
| Localization & navigation on a known map | nav-localize | Blocked by urdf-gazebo-sim, clean-and-map | Nav2 nav, AMCL localization, relocalize when lost, resume map |
| Dock cycle: undock, dock, recharge | dock-cycle | Blocked by urdf-gazebo-sim, nav-localize | Undock, return-to-dock, precise docking, station services, find dock when lost |
| Recovery behaviors & safety | recovery-safety | Blocked by urdf-gazebo-sim | Recovery ladder, escalation, pause-and-alert, safety sensors, status reporting |
| Floor-surface handling & edge cleaning | floor-care | Blocked by urdf-gazebo-sim, clean-and-map | Wall/edge following, carpet vs hardwood, mop lift/lower |
| Cleaning modes, zones & job orchestration | cleaning-jobs | Blocked by urdf-gazebo-sim + behaviors | Modes (regular/spot), virtual walls, room segmentation, job splitting + resume |
| Live robot bring-up & validation | live-robot-bringup | Blocked by behaviors + needs hardware | Connect real vacuum to ROS2, re-run sim tests on hardware |
| Dust bin 3D design | dust-bin | Ready to start work | Design, 3D print, test dust bin |
| Vacuum fan / blower assembly | vacuum-fan | Ready to start work | Source blower motor + impeller, design volute housing + gasket |
- oomwoo ROS2 and Ubuntu installation source code
- oomwoo ROS2 URDF package and config source code
- remakeai reference vacuum teardown — a consumer LiDAR vacuum with a basic dock and stationary mop.
- AlieksieievYurii/vacuum-cleaner — a DIY 3D-printed robot vacuum (Raspberry Pi Zero W, gyroscope-based, Fusion 360, Android control app, no dock)
- kaiaai/LDS, kaiaai/lds2d — open-source 2D LiDAR libraries (C++, Python) supporting 23+ LiDAR models
- remakeai/vacuum_ros2_bridge — ROS2 bridge for a 3irobotix CRL-200-based vacuum (Proscenic), full ROS2 control
- Valetudo — cloud-free firmware replacement for commercial vacuums (local app-level control, not ROS2)
- Dennis Giese / robotinfo.dev — teardowns and rootability of commercial robot vacuums.
- codetiger/VacuumTiger - 3irobotix CRL-200-based vacuum low-level control reverse engineered
- Build a ROS2/LiDAR robot crash course - watch this if you have no robotics experience
- Open Mower - open-source outdoor lawn mower
The project name "oomwoo" is a rotational ambigram - it reads the same flipped 180°, like the robot itself, roaming your floor in every direction.
The project is sponsored by makerspet.com and remake.ai. We are reusing their open-source solutions.
- If you'd rather skip the parts hunt, a kit (motors, PCB, brushes, gaskets, LiDAR) will be available at makerspet.com, from the same maker behind this project. The kit is a convenience, never a requirement. Everything here stays open.
- When we get to apps, remake.ai will be providing its robot apps platform and app store. Using the app store will be entirely optional. The vacuum will always support cloud-free, local operation for regular functionality out-of-the-box.
Code is released under the Apache License 2.0.
Hardware design files, once added, to be released under an open hardware license (TBD).


