Skip to content

Software

CleanIt

From github.com/Sollimann/CleanIt (opens in a new tab)

  • Cars
  • Framework
  • MIT

CleanIt is a DIY autonomy software stack written in Rust for Roomba-series robot vacuums, communicating over async gRPC. It targets motion planning, SLAM, mission control and visualization.

Facts

GitHub stars
325read on 6 Nov 2026
Last update
19 Nov 2025Newest commit on main
Maintenance
Maintaineda commit in the last 12 months
Difficulty
Intermediate
Hardware it needs, as the project states it
iRobot Create 2, or an iRobot Roomba 6xx series robot with a serial USB cable; Raspberry Pi 4 (4GB); Intel RealSense D435 or D435i depth camera. Linux needs libudev-dev and pkg-config, and serial access via the dialout group.

Checked on GitHub on 6 Nov 2026.

Licenses

Code
MIT (opens in a new tab)

Read by Robotheca from LICENSE (opens in a new tab) (MIT) at commit 26e1f43 (opens in a new tab), on 22 Oct 2026.

Commercial use
Yes

Overview

What it does: Robotheca's summary

  • Built from scratch in Rust, covering motion planning, guidance and control, SLAM, mission control and 2D/3D visualization.
  • Uses real-time client-server communication with async gRPC for intercommunication and distributed compute.
  • Includes a streaming server and a Roomba client, started with cargo run.
  • SLAM work is still in progress and lives in a separate repository.
  • Organized as a workspace with api, autonomy, drivers, proto, setup and visualization crates.

Written by Robotheca from the project's README (opens in a new tab) at commit 26e1f43, not by its creator.

The README

The creator's own README, copied as written: README.md by @Sollimann, at commit 26e1f43, under MIT (opens in a new tab). The original on GitHub (opens in a new tab).

Read the README here

CleanIt

(opens in a new tab) (opens in a new tab) (opens in a new tab) (opens in a new tab) (opens in a new tab) (opens in a new tab) (opens in a new tab) Image: ViewCount (opens in a new tab) (opens in a new tab)

<em>Open-source Autonomy Software in Rust-lang with gRPC for the Roomba series robot vacuum cleaners</em>

Picture: roomba.gif

Motivation

Motivation is to build a complete DIY autonomy software from scratch (motion planning, guidance and motion control, SLAM, mission control, 2D/3D visualization etc..) with a real-time client-server communication stream using async gRPC for intercommunication and distributed compute.

The SLAM part is work-in-progress here: https://github.com/Sollimann/Occupancy-Grid-FastSLAM/tree/main (opens in a new tab)

Contributions are welcome!

Would you like to contribute with work and/or ideas, feel free to check out the Project Backlog (opens in a new tab)

Run the Roomba client and API
Run the server
$ cargo run --bin streaming-server
Run the client
$ cargo run --bin roomba-client
Structure
Project Layout
├── Cargo.toml (workspace)
├── Cargo.lock
├── api (lib/bin)
|   └── client
|   └── server
├── autonomy (bin)
|   └── mission
|   └── motion
|   └── slam
|   └── perception
|   └── risk
├── drivers (lib)
|   └── roomba
|   └── realsense
|   └── rplidar
|   └── raspberryPi
└── proto (lib)
|   └── roomba_service.proto
|   └── messages.proto
|   └── types.proto
|   └── robot_state.proto
|   └── map2D.proto
├── setup (bin)
|   └── config
|   └── main
└── visualization (bin)
|   └── urdf
|   └── map
|   └── camera
Crate/package Layout
├── Cargo.toml
├── Cargo.lock
├── src
│   ├── main.rs
│   ├── lib.rs
│   └── bin
│       └── another_executable.rs
├── tests
│   └── some_integration_tests.rs
├── benches
│   └── simple_bench.rs
└── examples
    └── simple_example.rs
Pre-requisites
Software
Linux
$ [sudo] apt-get install libudev-dev pkg-config

User serial permission is required to connect to Create over serial. You can add your user to the dialout group to get permission:

$ [sudo] usermod -a -G dialout $USER

Logout and login again for this to take effect.

MacOs
$ brew install *TODO*
Hardware

Files and versions

Facts read at commit 26e1f43

Robotheca never hosts the code: each link goes to the creator's own page.

Use it

How to install it, in the creator's words: The project's README (opens in a new tab)

Robotheca doesn't review code. Read it before running it.

Robotheca lists software as a reference: nothing is hosted or run here, and every fact links to where it was read.