Open-source Autonomy Software in Rust-lang with gRPC for the Roomba series robot vacuum cleaners
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
Would you like to contribute with work and/or ideas, feel free to check out the Project Backlog
$ cargo run --bin streaming-server
$ cargo run --bin roomba-client
โโโ 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โโโ 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-configUser 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 $USERLogout and login again for this to take effect.
$ brew install *TODO*- 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
