Star 历史趋势
数据来源: GitHub API · 生成自 Stargazers.cn
README.md

oomwoo

The open-source robot vacuum you build yourself.

Raspberry Pi · ROS2 · Home Assistant · 2D LiDAR · 3D printed · ESP32 · Arduino

License Status

What is this?

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:

Reference robot vacuum cleaner top Reference robot vacuum cleaner bottom Reference robot vacuum cleaner - top cover removed

Goals

  • 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:

Build one

Status: design / RFC stage. Step-by-step build instructions don't exist yet — they arrive once the first BoM and parts are validated (first BoM targeted ~mid-July).

Full build docs and a complete BoM are on the way, with the goal that you can source every part yourself.

Contributing

Would you like to contribute? See CONTRIBUTING for the full guide.

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.

  1. Pick a contribution from the list below.
  2. Let us know you're working on it and your progress.
  3. Check ARCHITECTURE.md for the system design and interfaces.
  4. Say hi on Discord

Follow us building in public:

How the RFCs fit together

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.png for sharing on Discord, Reddit, etc. The source is assets/rfc-graph.mmd — edit it and re-export with npx @mermaid-js/mermaid-cli -i assets/rfc-graph.mmd -o assets/rfc-graph.png -s 3.

Requests for Contributions

ModuleIDPhaseNotes
ROS2 URDF + Gazebo simurdf-gazebo-simReady to start workDesign URDF, TF, bumper, simulate in Gazebo
First clean: coverage + mapping + explorationclean-and-mapBlocked by urdf-gazebo-simCoverage cleaning while SLAM-mapping and exploring, in Gazebo
Localization & navigation on a known mapnav-localizeBlocked by urdf-gazebo-sim, clean-and-mapNav2 nav, AMCL localization, relocalize when lost, resume map
Dock cycle: undock, dock, rechargedock-cycleBlocked by urdf-gazebo-sim, nav-localizeUndock, return-to-dock, precise docking, station services, find dock when lost
Recovery behaviors & safetyrecovery-safetyBlocked by urdf-gazebo-simRecovery ladder, escalation, pause-and-alert, safety sensors, status reporting
Floor-surface handling & edge cleaningfloor-careBlocked by urdf-gazebo-sim, clean-and-mapWall/edge following, carpet vs hardwood, mop lift/lower
Cleaning modes, zones & job orchestrationcleaning-jobsBlocked by urdf-gazebo-sim + behaviorsModes (regular/spot), virtual walls, room segmentation, job splitting + resume
Live robot bring-up & validationlive-robot-bringupBlocked by behaviors + needs hardwareConnect real vacuum to ROS2, re-run sim tests on hardware
Dust bin 3D designdust-binReady to start workDesign, 3D print, test dust bin
Vacuum fan / blower assemblyvacuum-fanReady to start workSource blower motor + impeller, design volute housing + gasket

The full granular module list lives in docs/RFC_MASTER_LIST.md.

Source code reference

Related prior art

Design research

We reviewed the 2025–2026 consumer robot vacuum landscape (global + China-sourceable brands, all price tiers) to decide which solutions to copy and which to skip. Key takeaways for the build:

  • Suction is a sourcing problem, not an engineering one. Real-world cleaning does not track advertised suction (Pa); ~$500 mid-tier models beat flagships. A moderate sealed sourced motor + a good brush + tight airflow sealing matches flagships — no custom impeller needed.
  • "Never gets stuck" needs camera + AI sensor fusion, not LiDAR alone — LiDAR is blind below its ~10 cm turret (cables, socks). v1 leans on the bumper for low obstacles; vision-based avoidance is a later / experimental goal, not an MVP promise.
  • Anti-tangle brush: a tapered rubber roller resists hair-wrap best (a top user complaint) and is easy to 3D-print.
  • Mop: a 3D-printed dual-spinning mop is competitive; the self-washing roller mop's edge is overstated and hard to replicate — skip it for now.

Well-loved models worth studying: Eufy Omni S2 (obstacle avoidance), Narwal Flow (roller mop), Ecovacs Deebot T90 Pro Omni (~$499 all-rounder), Dreame X40 Ultra (dual-spinning mop). Dreame is also the most Valetudo-rootable brand — the safest donor to study. (Per-model rankings are directional, from single-run reviewer tests.)

About

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.

License

Code is released under the Apache License 2.0.

Hardware design files, once added, to be released under an open hardware license (TBD).

Star History

Star History Chart

关于 About

Open-source vacuum robot cleaner
3d-printingarduinodiy-electronicsdiy-projectesp32esp32-arduinohome-assistantlidarlidar-slamraspberry-piros2slamvacuum-cleanervacuum-robot

语言 Languages

Mermaid100.0%

提交活跃度 Commit Activity

代码提交热力图
过去 52 周的开发活跃度
64
Total Commits
峰值: 50次/周
Less
More

核心贡献者 Contributors