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

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.
## Structure
#### Project Layout
bash
├── Cargo.toml (workspace)
├── Cargo.lock
├── api (bin)
| └── server
├── core (bin)
| └── mission
| └── motion
| └── slam
| └── perception
| └── risk
├── drivers (lib)
| └── roomba
| └── realsense
| └── rplidar
| └── raspberryPi
└── proto
| └── sensors.proto
| └── state.proto
| └── map2D.proto
└── visualization (bin)
| └── urdf
| └── map
| └── camera
├── 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
$ [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.
$ brew install *TODO*
$ claude mcp add CleanIt \
-- python -m otcore.mcp_server <graph>