A curated list of free and open source software and hardware projects which can be used to build and control a robot vacuum.
A IMU helps to make localization much more stable by providing accelerometer, gyroscope and some even magnetometer data. cartographer can easily be setup with IMU to improve localization.
- MPU6050 - IMU sensor combining a MEMS accelerometer and a MEMS gyro on a single chip.
A LIDAR (Light Detection and Ranging) can create an accurate representation of its surroundings by utilizing a laser and a light sensor to measure TOF (Time of Flight). Devices are available as 2D and 3D variants, although the 3D variants are still pretty expensive and do not add much value to the "robot vacuum" use case.
- camsense-X1 - Unofficial reverse engineering of a Chinese LiDAR.
GPL-3.0
- RPLIDAR A Series - 360 Degree Laser Scanner with ROS integration and up to 16K samples per second.
A list of full blown projects to create a robot vacuum.
- CleanBOT - DIY bluetooth controlled robot vacuum built from wood and scrap electronics.
- DIY Vacuum Robot by CesNieto - DIY robot vacuum built using 3D printing and an Arduino Uno.
- Robot Vacuum Cleaner MK2 - DIY robot vacuum built using 3D printing and an Arduino Nano.
BY-NC-SA
- Bumper - A standalone and self-hosted implementation of the central server used by Ecovacs vacuum robot.
GPL-3.0
Python
- Dustcloud - Xiaomi Smart Home Device Reverse Engineering and Hacking.
GPL-3.0
Various
- Roborock Oucher - An utility to make the Roborock / Xiaomi MI Vacuum Cleaner scream "Ouch!" (or everything else) everytime it bumps into something
MIT
golang
- Valetudo - Cloud-free control webinterface for vacuum robots.
Apache-2.0
JavaScript
- I can't belive it's not Valetudo - Valetudo companion service (Map Rendering)
Apache-2.0
JavaScript
- Valetudo RE - Experimental vacuum software, cloud free (Valetudo Fork)
Apache-2.0
JavaScript
- valetudo mapper - Valetudo companion service (Map Rendering, ICantBelieveItsNotValetudo Fork)
Apache-2.0
JavaScript
- FreeCong.ga - Valetudo implementation for Cecotec Conga Vacuums. Freeconga Organization in Github.
Apache-2.0
,GPL-3.0
- Congatudo Freecon.ga project to have Valetudo in the Home Assistant as addon intead of use standalone installation into the vacuum.
GPL-3.0
Shell
- OpenDoñita - Add local support for previous Congas 1490.
GPL-3.0
Python
- Gobot - Golang framework for robotics, drones, and the Internet of Things (IoT).
Apache-2.0
golang
- ROS (Robot Operating System) - Provides libraries and tools to help software developers create robot applications. It provides hardware abstraction, device drivers, libraries, visualizers, message-passing, package management, and more.
BSD
Various
SLAM (Simultaneous Localization and Mapping) is used to build a map by repeatedly scanning surrounding area and through that enable the robot to localize itself within that environment.
- BreezySLAM - Simple, efficient, open-source package for Simultaneous Localization and Mapping.
LGPLv3
Various
- cartographer - A system that provides real-time simultaneous localization and mapping (SLAM) in 2D and 3D across multiple platforms and sensor configurations.
Apache-2.0
C
- OpenVSLAM - A Versatile Visual SLAM Framework.
2-Clause BSD
C
- ROS SLAM - A ROS wrapper for OpenSlam's Gmapping.
BSD
C
You know a software or hardware project that is not on this list yet? Contributions are very much welcome! Have a look at the Contribution Guidelines to learn how you can add projects to this list.