CleanIt
Roomba 시리즈 로봇 청소기를 위한 Rust-lang 기반 gRPC 오픈소스 자율주행 소프트웨어
동기
동기는 실시간 클라이언트-서버 통신 스트림을 위한 비동기 gRPC를 사용하여 상호 통신과 분산 계산을 지원하는 완전한 DIY 자율주행 소프트웨어(모션 플래닝, 안내 및 모션 제어, SLAM, 미션 제어, 2D/3D 시각화 등)를 처음부터 구축하는 것입니다.
SLAM 부분은 다음에서 진행 중입니다: https://github.com/Sollimann/Occupancy-Grid-FastSLAM/tree/main
기여를 환영합니다!
작업 및/또는 아이디어로 기여하고 싶다면 프로젝트 백로그를 확인해 주세요.
Roomba 클라이언트 및 API 실행하기
#### 서버 실행하기
$ 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
``
#### 크레이트/패키지 레이아웃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
## 전제 조건소프트웨어
#### _리눅스_
bash
$ [sudo] apt-get install libudev-dev pkg-config
시리얼을 통해 Create에 연결하려면 사용자 시리얼 권한이 필요합니다. 권한을 얻으려면 사용자를 dialout 그룹에 추가할 수 있습니다:bash
$ [sudo] usermod -a -G dialout $USER
이 변경 사항을 적용하려면 로그아웃한 후 다시 로그인하세요.
##### _MacOs_bash
$ brew install TODO
``
하드웨어
- iRobot Create 2 (또는 시리얼 USB 케이블이 있는 iRobot Roomba 6xx 시리즈 - 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 또는 D435i 깊이 카메라