Sollimann
CleanIt
Rust

Open-source Autonomy Software in Rust-lang using gRPC for the Roomba series robot vacuum cleaners. Under development.

Last updated Jul 3, 2026
315
Stars
19
Forks
5
Issues
+2
Stars/day
Attention Score
48
Language breakdown
Rust 100.0%
โ–ธ Files click to expand
README

CleanIt

Build Status codecov minimum rustc 1.45 version Maintenance GitHub pull-requests GitHub pull-requests closed ViewCount License: MIT

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

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

Contributions are welcome!

Would you like to contribute with work and/or ideas, feel free to check out the Project Backlog

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
โ”‚   โ””โ”€โ”€ someintegrationtests.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

- iRobot Create 2 (or iRobot Roomba 6xx series with serial USB cable - https://store.irobot.com/en_US/parts-and-accessories/create-accessories/communication-cable-for-create-2/4466502.html ) - Raspberry Pi 4 (4GB) - Intel RealSense D435 or D435i depth camera
๐Ÿ”— More in this category

ยฉ 2026 GitRepoTrend ยท Sollimann/CleanIt ยท Updated daily from GitHub