CleanIt

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

MIT License

Stars
246

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.

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

Badges
Extracted from project README
Build Status codecov minimum rustc 1.45 version Maintenance GitHub pull-requests GitHub pull-requests closed License: MIT
Related Projects