Open-source Autonomy Software in Rust-lang using gRPC for the Roomba series robot vacuum cleaners. Under development.
MIT License
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.
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-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*