랭킹으로 돌아가기

makerspet/oomwoo

Python

Open-source vacuum robot cleaner

3d-printingarduinodiy-electronicsdiy-projectesp32esp32-arduinohome-assistantlidarlidar-slamraspberry-piros2slam
스타 성장
스타
4.9k
포크
216
주간 성장
이슈
6
2k3k4k
6월 1일6월 17일7월 4일7월 21일
아티팩트PyPIpip install oomwoo
README

OOMWOO

Open-source robot vacuum you build yourself.

Clean well · Hackable · 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 us building in public Discord | X | Instagram | Facebook | Reddit | newsletter | YouTube | oomwoo.com | Tutorials

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:

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 and works on it whenever she wants. For code and simulation modules she builds her package in her own repo and sends a short PR linking it from the module; for docs and specs she contributes files in-tree under contributions/module-name/<her-github-username>. See CONTRIBUTING for how this works.

Multiple developers are welcome to work on the same module. The best solution for each module surfaces 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 and SOFTWARE_INTERFACES.md for the system design and ROS2 interfaces.

Requests for Contributions

Every module below is actionable now — build it against the Gazebo simulation (oomwoo-one) or a real placeholder robot (a Proscenic M6 Pro connected to ROS2), until OOMWOO hardware is ready. Pick one, tell us in Discussions, build it in your own repo (docs and specs go in-tree), and send a short PR linking it from the module.

Module ID Status Notes
ROS2 URDF + Gazebo sim urdf-gazebo-sim In progress Placeholder URDF + Gazebo sim (reference: oomwoo-one; @alvarosamudio featured), refined when hardware lands
First clean: coverage + mapping + exploration clean-and-map Ready to start work Coverage cleaning while SLAM-mapping and exploring
Auto cleaning In progress Clean the entire room using an existing map (using coverage path planning)
Regression tests In progress Set up simulatior regression test framework (auto cleaning in Gazebo)
Localization & navigation on a known map nav-localize In progress Nav2 nav, AMCL localization, relocalize when lost, resume map
Dock cycle: undock, dock, recharge dock-cycle Ready to start work Undock, return-to-dock, precise docking, station services, find dock when lost
Recovery behaviors & safety recovery-safety Ready to start work Recovery ladder, escalation, pause-and-alert, safety sensors, status reporting
Near-field obstacle avoidance (camera + ToF) obstacle-avoidance Ready to start work v2 "never gets stuck": front camera + VL53L7CX ToF detect below-LiDAR obstacles (cables, socks); detect-then-classify
Compute benchmark & memory reduction compute-benchmark In progress Measure ROS2/Nav2/SLAM memory, compare composable nodes, and track the 4 GB -> 2 GB target
Floor-surface handling & edge cleaning floor-care Ready to start work Wall/edge following, carpet vs hardwood, mop lift/lower
Cleaning modes, zones & job orchestration cleaning-jobs Ready to start work Modes (regular/spot), virtual walls, room segmentation, job splitting + resume
Control app & UX (design-first) control-app Ready to start work Local-first control app/UI — a client of the ROS2 stack + Home Assistant; design-led (welcomes designers): prioritize features, concept the MVP surface (start/stop, live map, status, zones)
Live robot bring-up & validation live-robot-bringup Ready to start work Connect the placeholder Proscenic M6 Pro to ROS2, re-run sim tests on hardware
Source 3D models (STEP) for BOM parts source-3d-models In progress Obtain / measure / model STEP files of off-the-shelf parts (wheels, fans, caster…) so mounts fit
Procure part specs & datasheets part-specs In progress Find/measure/reverse-engineer specs (pinouts, encoder PPR, torque, how to drive fans…) for sourced parts
I/O + motor-driver PCB io-pcb In progress I/O board with CM4/CM5 socket, STM32G070 MCU - motors, sensors, 4S2P charging, safety, FreeRTOS, custom serial to CM4/CM5, 2D LiDAR header, IMU, audio serial/amp/speaker, MIPI camera(s) i/f; KiCad, JLCPCB
MCU I/O board firmware mcu-io-firmware Ready to start work STM32G473 firmware: Arduino (STM32duino) API + FreeRTOS + a HAL/ISR real-time safety core; motors, sensors, charging, custom serial to the CPU; repo
Fit software into 2GB 1GB RAM compute-benchmark In progress ROS2 node composition, Rust; remove Gazebo, desktop UI

Planned and on-hold modules (mechanical design, later-phase software) live in the RFC backlog.

Source code reference

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 Chart
관련 저장소
FreeCAD/FreeCAD

Official source code of FreeCAD, a free and opensource multiplatform 3D parametric modeler.

C++GNU Lesser General Public License v2.1freecadengineering
freecad.org
32.3k5.8k
MarlinFirmware/Marlin

Marlin is a firmware for RepRap 3D printers optimized for both 8 and 32 bit microcontrollers. Marlin supports all common platforms. Many commercial 3D printers come with Marlin installed. Check with your vendor if you need source code for your specific machine.

C++GNU General Public License v3.0repraparduino
marlinfw.org
17.5k19.7k
OrcaSlicer/OrcaSlicer

G-code generator for 3D printers (Bambu, Prusa, Voron, VzBot, RatRig, Creality, etc.)

C++GNU Affero General Public License v3.03d-printer3d-printing
orcaslicer.com
15.2k2.8k
openscad/openscad

OpenSCAD - The Programmers Solid 3D CAD Modeller

C++Other3d-modelsdxf-files
openscad.org
9.8k1.6k
SoftFever/OrcaSlicer

G-code generator for 3D printers (Bambu, Prusa, Voron, VzBot, RatRig, Creality, etc.)

C++GNU Affero General Public License v3.03d-printer3d-printing
discord.gg/P4VE9UY9gJ
9k1.1k
Ultimaker/Cura

3D printer / slicing GUI built on top of the Uranium framework

PythonPyPIGNU Lesser General Public License v3.0cura3d-printing
7k2.2k
cnr-isti-vclab/meshlab

The open source mesh processing system

C++GNU General Public License v3.03dmesh
meshlab.net
5.8k905
dw-0/kiauh

Klipper Installation And Update Helper

PythonPyPIGNU General Public License v3.0fluiddklipper
4.5k635
slic3r/Slic3r

Open Source toolpath generator for 3D printers

C++GNU Affero General Public License v3.03d-printingcam
slic3r.org
3.6k1.3k
Keychron/Keychron-Keyboards-Hardware-Design

Industrial design files for Keychron keyboards and mice. 100+ models with CAD assets in STEP, DXF, DWG, and PDF. Source-available, with commercial use allowed for original compatible accessories within the license terms.

Other3d-printingcad
keychron.com
3.6k283
huxingyi/dust3d

Dust3D is a cross-platform 3D modeling software that makes it easy to create low poly 3D models for video games, 3D printing, and more.

C++MIT Licensedust3d3d-modelling
dust3d.org
3.4k251
Keycapsss/awesome-mechanical-keyboard

⌨️ A curated list of Open Source Mechanical Keyboard resources.

Astrokeyboard3d-printing
keebfolio.netlify.app
3.3k204