๐ŸŒ AIๆœ็ดข & ไปฃ็† ไธป้กต
Skip to content

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

License

Notifications You must be signed in to change notification settings

Sollimann/CleanIt

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

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

Packages

No packages published

Languages