Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/sollimann/cleanit

Open-source Autonomy Software in Rust-lang using gRPC for the Roomba series robot vacuum cleaners. Under development.
https://github.com/sollimann/cleanit

autonomous-robots autonomy grpc irobot missionplanner motion-control motion-planning obstacle-avoidance pathplanning robot-localization robotics roomba ros rust rust-lang sensor-fusion serial slam vacuum-robot

Last synced: 2 days ago
JSON representation

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

Awesome Lists containing this project

README

        

CleanIt

[![Build Status](https://github.com/Sollimann/CleanIt/actions/workflows/rust-ci.yml/badge.svg)](https://github.com/Sollimann/CleanIt/actions)
[![codecov](https://codecov.io/gh/Sollimann/CleanIt/branch/main/graph/badge.svg?token=EY3JRZN71M)](https://codecov.io/gh/Sollimann/CleanIt)
[![minimum rustc 1.45](https://img.shields.io/badge/rustc-1.45+-blue.svg)](https://rust-lang.github.io/rfcs/2495-min-rust-version.html)
[![version](https://img.shields.io/badge/version-1.0.0-blue)](https://GitHub.com/Sollimann/CleanIt/releases/)
[![Maintenance](https://img.shields.io/badge/Maintained%3F-yes-green.svg)](https://GitHub.com/Sollimann/CleanIt/graphs/commit-activity)
[![GitHub pull-requests](https://img.shields.io/github/issues-pr/Sollimann/CleanIt.svg)](https://GitHub.com/Sollimann/CleanIt/pulls)
[![GitHub pull-requests closed](https://img.shields.io/github/issues-pr-closed/Sollimann/CleanIt.svg)](https://GitHub.com/Sollimann/CleanIt/pulls)
![ViewCount](https://views.whatilearened.today/views/github/Sollimann/CleanIt.svg)
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/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.

## Contributions are welcome!

Would you like to contribute with work and/or ideas, feel free to check out the [Project Backlog](https://github.com/Sollimann/CleanIt/projects)

## 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
```bash
├── 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
```bash
├── 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_
```bash
$ [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:

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

Logout and login again for this to take effect.
##### _MacOs_
```bash
$ 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